package com.zjjerp.tool;

import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar; /**
* @Author:Demom
* @Date:2013-8-2,上午9:22:05
*/
public class GetDateTimeTools { /***
* 得到yyyy-MM-dd时间格式
* @param date
* @return
*/
public static String getYYYYMMDD(Date date){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
return sdf.format(date);
}
/***
* 得到yyyy-MM-dd hh:mm:ss时间格式
* @param date
* @return
*/
public static String getYYYYMMDDHHMMSS(Date date){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
return sdf.format(date);
}
//获取当月的的10号
public static String getnowMonthtenday(){
Calendar cal = Calendar.getInstance();
int month = cal.get(Calendar.MONTH) + 1;
int year = cal.get(Calendar.YEAR);
StringBuffer sb =new StringBuffer();
sb.append(year);
sb.append("-");
if(month<10){
sb.append("0");
sb.append(month);
}else{
sb.append(month);
}
sb.append("-10");
return sb.toString();
}
//获取当前月的下一个月的10号
public static String getnextMonthtenday(){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String strDate = sdf.format(new Date());
int index = strDate.indexOf(" ");
String str1 = strDate.substring(0, index);
String[] str2 = str1.split("-");
String nextDay="";
if(str2[1]!="12"){
int Month = Integer.parseInt(str2[1])+1;
nextDay=str2[0]+"-"+Month+"-"+"10";
}
if(str2[1]=="12" || "12".equals(str2[1])){
int Month = 1;
int Year = Integer.parseInt(str2[0])+1;
nextDay = Year+"-"+Month+"-"+"10";
}
return nextDay;
}
//获取当前年
public static int getCurrentYear(){
Calendar cal = Calendar.getInstance();
int month = cal.get(Calendar.MONTH) + 1;
int year = cal.get(Calendar.YEAR);
return year;
}
//获取当前yue
public static int getCurrentMonth(){
Calendar cal = Calendar.getInstance();
int month = cal.get(Calendar.MONTH) + 1;
return month;
}
/**
* 以上个月为时间轴,获取上个月的时间
* @param status(0 代表获取月的1号,1代表获取月末)
* @return
*/
public static String getLastMonthDay(int status) {
Calendar cal = Calendar.getInstance();
Date date = new Date();
cal.setTime(date);
int year = 0;
int month = cal.get(Calendar.MONTH); // 上个月月份
String newMonth="";
//设置年月
if (month == 0) {
year = cal.get(Calendar.YEAR) - 1;
month = 12;
newMonth=""+month;
} else {
if(month<10){
newMonth="0"+String.valueOf(month);
}else{
newMonth=String.valueOf(month);
}
year = cal.get(Calendar.YEAR);
}
//设置天数
String temp=year + "-" + newMonth.toString();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
Date d = null;
try {
d = format.parse(temp);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
cal.setTime(d); int day =cal.getActualMaximum(Calendar.DAY_OF_MONTH);
if(status==1){
String endDay = year + "-" + newMonth + "-" + day;
return endDay;
}else{
String endDay = year + "-" + newMonth + "-" + "01";
return endDay;
}
}
/**
* 以上个月为时间轴,获取下个月的时间
* @param status(0 代表获取月的1号,1代表获取月末)
* @return
*/
public static String getNextMonthDay(int status) {
Calendar cal = Calendar.getInstance();
int day=cal.get(Calendar.DATE);
SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd");
String timestr= sdf.format(new Date());
timestr=timestr.substring(0,8);
if(status==1){
timestr+=String.valueOf(day);
}else{
timestr+="01";
}
return timestr;
}
/***
* 以上个月为时间轴,获取当月的时间
* @param status(0 代表获取月的1号,1代表获取月末)
* @return
*/
public static String getCurrMonthDay(int status) {
Calendar cal = Calendar.getInstance();
Date date = new Date();
cal.setTime(date);
int year = 0;
int month = cal.get(Calendar.MONTH); // 上个月月份
String newMonth="";
//设置年月
if (month == 0) {
year = cal.get(Calendar.YEAR) - 1;
month = 12;
newMonth=""+month;
} else {
if(month<10){
newMonth="0"+String.valueOf(month);
}else{
newMonth=String.valueOf(month);
}
year = cal.get(Calendar.YEAR);
}
//设置天数
String temp=year + "-" + newMonth.toString();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
Date d = null;
try {
d = format.parse(temp);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
cal.setTime(d);
int day =cal.getActualMaximum(Calendar.DAY_OF_MONTH);
if(status==1){
String endDay = year + "-" + newMonth + "-" + day;
return endDay;
}else{
String endDay = year + "-" + newMonth + "-" + "01";
return endDay;
} }
//获取当月5号日前哦
public static String getevery5day(){ Calendar cal = Calendar.getInstance();
int month = cal.get(Calendar.MONTH) + 1;
int year = cal.get(Calendar.YEAR);
StringBuffer sb =new StringBuffer();
sb.append(year);
sb.append("-");
if(month<=10){
sb.append("0");
sb.append(month);
}else{
sb.append(month);
}
sb.append("-05");
return sb.toString();
} //合同续约
public static String datexuyue(int year){ SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd");
String now = sdf.format(new Date());
String[] nowStr = now.split("-");
int year1 = Integer.parseInt(nowStr[0])+year;
StringBuffer sb = new StringBuffer();
sb.append(year1+"-"+nowStr[1]+"-"+nowStr[2]);
return sb.toString();
}
//得到N天后的日期
public static String getBeforeAfterDate(String datestr, int day) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
java.sql.Date olddate = null;
try {
df.setLenient(false);
olddate = new java.sql.Date(df.parse(datestr).getTime());
} catch (ParseException e) {
throw new RuntimeException("日期转换错误");
}
Calendar cal = new GregorianCalendar();
cal.setTime(olddate); int Year = cal.get(Calendar.YEAR);
int Month = cal.get(Calendar.MONTH);
int Day = cal.get(Calendar.DAY_OF_MONTH); int NewDay = Day + day; cal.set(Calendar.YEAR, Year);
cal.set(Calendar.MONTH, Month);
cal.set(Calendar.DAY_OF_MONTH, NewDay); return new java.sql.Date(cal.getTimeInMillis()).toString();
} //根据两个日期A、B计算AB之间的天数
public static long getQuot(String time1, String time2){
long quot = 0;
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");
try { Date date1 = ft.parse( time1 );
Date date2 = ft.parse( time2 );
quot = date1.getTime() - date2.getTime();
quot = quot / 1000 / 60 / 60 / 24;
} catch (ParseException e) {
e.printStackTrace();
}
return quot;
}
//得到N月后的日期
public static String GetSysDate(String format, String StrDate, int year, int month,
int day) {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sFmt = new SimpleDateFormat(format);
cal.setTime(sFmt.parse( (StrDate), new ParsePosition(0))); if (day != 0) {
cal.add(cal.DATE, day);
}
if (month != 0) {
cal.add(cal.MONTH, month);
}
if (year != 0) {
cal.add(cal.YEAR, year); }
return sFmt.format(cal.getTime());
} public static void main(String[] args) {
System.out.println(GetSysDate("yyyy-MM-dd", "2004-01-18", 0, 13, 0));
}
}

java 常用时间操作类,计算到期提醒,N年后,N月后的日期的更多相关文章

  1. JAVA常用时间操作类

    http://www.360doc.com/content/10/1210/17/2703996_76839640.shtml    在程序里面要获取当前的开始时间和结束时间,以及当前天所在的周的开始 ...

  2. Java常用API(ArrayList类)

    Java常用API(ArrayList类) 我们为什么要使用ArrayList类? 为了更加方便的储存对象,因为使用普通的数组来存储对象太过麻烦了,因为数组的一个很大的弱点就是长度从一开始就固定了,所 ...

  3. Python常用时间操作总结【取得当前时间、时间函数、应用等】转载

    Python常用时间操作总结[取得当前时间.时间函数.应用等] 转载  2017-05-11   作者:清风乐逍遥    我要评论 这篇文章主要介绍了Python常用时间操作,包括取得当前时间.时间函 ...

  4. Java常用API(Arrays类)

    Java常用API(Arrays类) 什么是Arrays类? java.util.Arrays 此类包含用来操作数组的各种方法,比如排序和搜索等.其所有方法均为静态方法,调用起来 非常简单. 这里我们 ...

  5. Java常用API(Scanner类)

    Java常用API( Scanner类)1 1.Scanner类 首先给大家介绍一下什么是JavaAPI API(Application Programming Interface),应用程序编程接口 ...

  6. Java常用API(Math类)

    Java常用API(Math类) Math类的作用 java.lang.Math 类包含用于执行基本数学运算的方法,如初等指数.对数.平方根和三角函数.类似这样的工具 类,其所有方法均为静态方法,并且 ...

  7. Java常用API(String类)

    Java常用API(String类) 概述: java.lang.String 类代表字符串.Java程序中所有的字符串文字(例如 "abc" )都可以被看作是实现此类的实例 1. ...

  8. Java常用API(Random类)

    Java常用API(Random类) Random:是一个用于生成随机数的类 构造方法 public Random() :创建一个新的随机数生成器. 返回随机数的方法 public int nextI ...

  9. java/javascript 时间操作工具类

    一.java 时间操作工具类 import org.springframework.util.StringUtils; import java.text.ParseException; import ...

随机推荐

  1. Git基本操作(一)

    Git 使用(一) - git init 初始化仓库 - git status 仓库状态 - git add filename 单个文件加入暂存 - git add. 全部加入暂存 - git com ...

  2. EntityFramework Core健康检查

    前言 .NET Core提供对应方法可进行健康检查,那么在EF Core中是否也提供了相应的方式呢?EF Core 2.2+(包含2.2)版本提供了针对上下文的健康检查,接下来我们直接利用.NET 5 ...

  3. Spring Cloud Alibaba 初体验(三) Nacos 与 Dubbo 集成

    一.新建项目 新建项目,只放置接口,用于暴露 Dubbo 服务接口 public interface GreetingService { String greeting(); } 二.provider ...

  4. Arcgis100.4 加载天地图不显示--备注一哈

    Arcgis100.4 默认添加了请求referer 值,天地图会拒绝请求,替换为http://map.tianditu.gov.cn/ 可正常显示.(arcgis 降级到100.1也可正常显示) R ...

  5. js实现跳转的几种方式

    1. window.open("url"); 2.用自定义函数 <script> function openWin(tag,obj) { obj.target=&quo ...

  6. kubernetes集群断电后etcd启动失败之etcd备份方案

    一.问题描述 二进制部署的单Master节点的v1.13.10版本的集群,etcd部署的是3.3.10版本,部署在master节点上.在异常断电后,kubernetes集群无法正常启动.这里通过查看k ...

  7. 使用darkarmour免杀mimikatz

    darkarmour是一个可用来免杀exe的项目,github地址:https://github.com/bats3c/darkarmour 我们使用darkarmour来免杀mimikatz. ./ ...

  8. 通过CSS绘制五星红旗

    任务要求: 1.创建一个div作为红旗旗面,用CSS控制其比例宽高比为3:2,背景为红色. 2.再创建五个小的div,用CSS控制其大小和位置. 3.用CSS同时控制每个小div的大小.边框和位置,同 ...

  9. CF1439C Greedy Shopping

    题解 尝试做一下,感觉是每次取一段前缀和,这样就相当于让我们证明在 \(a_i\le 10^{12}\) 时,不可能构造出隔一个取一个的情况(\(n=10^5\)). a[i]: 1, 2, 3, 5 ...

  10. mysql 基础入门 单表查询

    单表查询 select 表头,表头 as 别名 ,表头(+-*/的运算) from table_a 1.条件查询 where + 条件 <> , != 不等于 = 等于,也可以表示字符串值 ...