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. 《应用计算方法教程》matlab作业一

    运行界面: 运行界面: 运行界面: 运行界面: 运行界面: 运行界面: 运行界面: 运行界面: 运行界面: 运行界面: word文档百度云链接: 链接:https://pan.baidu.com/s/ ...

  2. vue跨域请求

    浏览器的同源策略 同源 协议相同 域名相同 端口相同 同源目的 保证用户信息安全,防止恶意的网站窃取数据 同源策略解决方法 jsonp cors 代理解决跨域 settings.py INSTALLE ...

  3. 【服务总线 Azure Service Bus】Service Bus在使用预提取(prefetching)后出现Microsoft.Azure.ServiceBus.MessageLockLostException异常问题

    问题描述 Service Bus接收端的日志中出现大量的MessageLockLostException异常.完整的错误消息为: Microsoft.Azure.ServiceBus.MessageL ...

  4. 【译】理解Rust中的局部移动

    原文标题:Understanding Partial Moves in Rust 原文链接:https://whileydave.com/2020/11/30/understanding-partia ...

  5. 第7.3节 Python特色的面向对象设计:协议、多态及鸭子类型

    Python是一种多态语言,其表现特征是:对象方法的调用方只管方法是否可调用,不管对象是什么类型,从而屏蔽不同类型对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化. 一.    P ...

  6. PyQt(Python+Qt)学习随笔:QDockWidget停靠部件的setWidget和widget方法

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 QDockWidget对象由一个标题栏和内容区域组成.QDockWid ...

  7. 第8.33节 Python中__getattr__以及__getattr__与__ getattribute__的关系深入剖析

    一. 引言 前面几节分别介绍了Python中属性操作捕获的三剑客:__ getattribute__方法.__setattr__方法.__delattr__方法,为什么__ getattribute_ ...

  8. PyQt(Python+Qt)学习随笔:QAbstractItemView的editTriggers属性以及平台编辑键(platform edit key )

    老猿Python博文目录 老猿Python博客地址 editTriggers属性 editTriggers属性用于确认哪些用户操作行为会触发ItemView中的数据项进入编辑模式. 此属性是由枚举类E ...

  9. PHP代码审计分段讲解(14)

    30题利用提交数组绕过逻辑 本篇博客是PHP代码审计分段讲解系列题解的最后一篇,对于我这个懒癌患者来说,很多事情知易行难,坚持下去,继续学习和提高自己. 源码如下: <?php $role = ...

  10. Mac上使用Docker Desktop安装Kubernetes

    下载镜像需要特殊手段,你懂的,如果没有特殊手段,建议放弃这种方式. 1 启用Kubernetes 启用过程,会联网下载kubenetes相关的核心组件镜像,如下是我下载好的: 下载好了,kubenet ...