package com.wang.struts.util;
import java.util.Date;
import java.util.Scanner;
import java.text.SimpleDateFormat;
public class DateUtil {
public String getBackDate(int backDay) {
String today = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
String date = "";
int year = Integer.parseInt((today.split("-"))[0]);
int month = Integer.parseInt((today.split("-"))[1]);
int day = Integer.parseInt((today.split("-"))[2]);
if (day - (backDay - 1) > 0) {
return date + year + "-" + month + "-" + (day - (backDay - 1));
} else {
return date
+ getBackYear(year, month)
+ "-"
+ getLastMonth(month)
+ "-"
+ (getMonthDays(year, getLastMonth(month)) - (backDay - 1 - day));
}
}
public String getForwardDate(int forwardDay) {
String today = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
int year = Integer.parseInt((today.split("-"))[0]);
int month = Integer.parseInt((today.split("-"))[1]);
int day = Integer.parseInt((today.split("-"))[2]);
if (day + forwardDay <= 28) {
return "" + year + "-" + month + "-" + (day + forwardDay);
} else {
switch (month) {
case 2:
return "" + getForwardYear(year, month) + "-"
+ getNextMonth(month) + "-"
+ (forwardDay - (getMonthDays(year, month) - day));
case 4:
if (day + forwardDay <= 30) {
return "" + year + "-" + month + "-" + (day + forwardDay);
} else {
return "" + getForwardYear(year, month) + "-"
+ getNextMonth(month) + "-"
+ (forwardDay - (getMonthDays(year, month) - day));
}
case 6:
if (day + forwardDay <= 30) {
return "" + year + "-" + month + "-" + (day + forwardDay);
} else {
return "" + getForwardYear(year, month) + "-"
+ getNextMonth(month) + "-"
+ (forwardDay - (getMonthDays(year, month) - day));
}
case 9:
if (day + forwardDay <= 30) {
return "" + year + "-" + month + "-" + (day + forwardDay);
} else {
return "" + getForwardYear(year, month) + "-"
+ getNextMonth(month) + "-"
+ (forwardDay - (getMonthDays(year, month) - day));
}
case 11:
if (day + forwardDay <= 30) {
return "" + year + "-" + month + "-" + (day + forwardDay);
} else {
return "" + getForwardYear(year, month) + "-"
+ getNextMonth(month) + "-"
+ (forwardDay - (getMonthDays(year, month) - day));
}
default:
if (day + forwardDay <= 31) {
return "" + year + "-" + month + "-" + (day + forwardDay);
} else {
return "" + getForwardYear(year, month) + "-"
+ getNextMonth(month) + "-"
+ (forwardDay - (getMonthDays(year, month) - day));
}
}
}
}
public boolean isRn(int year) {
if (year % 4 == 0 && !(year % 100 == 0 && year % 400 != 0))
return true;
return false;
}
public int getLastMonth(int month) {
if (month != 1)
return month - 1;
else
return 12;
}
public int getNextMonth(int month) {
if (month != 12)
return month + 1;
else
return 1;
}
public int getBackYear(int year, int month) {
if (getLastMonth(month) == 12)
return year - 1;
else
return year;
}
public int getForwardYear(int year, int month) {
if (getNextMonth(month) == 1)
return year + 1;
else
return year;
}
public int getMonthDays(int year, int month) {
int lastMonthDays = 0;
switch (month) {
case 2:
if (isRn(year))
lastMonthDays = 28;
else
lastMonthDays = 29;
break;
case 4:
lastMonthDays = 30;
break;
case 6:
lastMonthDays = 30;
break;
case 9:
lastMonthDays = 30;
break;
case 11:
lastMonthDays = 30;
break;
default:
lastMonthDays = 31;
}
return lastMonthDays;
}
// private int d = 0 ;
// public int geDay(int year,int month,int backDay){
// if (getMonthDays(year,month) - (backDay - 1) > 0) {
// d = getMonthDays(year,month) - (backDay - 1);
// return d;
// }else{
// geDay(year,month,backDay);
//
// }
// return d;
// }
public static void main(String[] args) {
DateUtil du = new DateUtil();
// for (int m = 1; m <= 12; m++) {
// System.out.println("1900年" + m + "月的天数" + du.getMonthDays(1900, m));
// }
int sign = 1;
Scanner sc = new Scanner(System.in);
while (sign != 0) {
System.out.print("输入一个天数:");
sign = sc.nextInt();
System.out.println(du.getForwardDate(sign));
}
System.out.println("程序退出");
}
}
分享到:
相关推荐
Java日期工具类 1、日期的各种格式化 2、获取当前年度 3、获取当前月份 4、获取当前天号数 5、获取当前时间往前推一个月的时间 ...23、根据传入的日期返回前一季度字符串 24、根据传入的日期返回相应的季度 .......
NULL 博文链接:https://literary-fly.iteye.com/blog/949495
用ORACLE实现的返回相差的天数,能够方便的解决日期类型的问题
增加日期的天数。失败返回null。 增加日期的小时。失败返回null。 增加日期的分钟。失败返回null。 增加日期的秒钟。失败返回null。 获取日期的年份。失败返回0。 获取日期的月份。失败返回0。 获取...
2 返回农历year年闰月的天数(如果没有闰月则返回0) 3 返回农历year年的总天数 4 返回农历year年month月的天数 5 农历日期的中文字符串 6 返回某年的第n个节气为第几日 7 获取阳历某个月份有多少天 8 获取指定...
解析常用的中文日期并返回日期对象。 add--日期加减操作。[注:此函数在上传时还存在一个BUG。请下载后把此函数内的第一行"var regExp = /^\d+$/;" 改为 "var regExp = /^([+-])?\d+$/;", 要不然就做不了减法。] ...
计算两个时间之间的年数、月数、天数、时、分、秒,计算两个时间之间的年数、月数、天数、时、分、秒
在指定的日期上增加天数 ,7.在指定的日期上减去天数 ,8.为时间增加分钟,9.为时间减去分钟 ,10两个日期大小比较,11.判断时间是否超过一定的小时数 ,12获取当前日期往后一定的年数,13.计算两个日期之间相差的...
java获取某年某月到某年某月按天的切片日期集合(间隔天数的集合)、获取某年某月按天切片日期集合(某个月间隔多少天的日期集合)、指定天的开始和结束日期、返回某个日期前几天的日期并转换成字符串
接着,根据农历年份和月份,计算出该月份的天数和第一天的日期。如果需要,将公历日期调整为该月份的正确日期。最后,根据农历年份、月份和日期,创建一个对应的Calendar对象,并返回该对象作为结果。
主要介绍了php获取给定日期相差天数的方法,结合具体实例形式分析了2种日期相差天数的计算方法,涉及php日期字符串转换的相关操作技巧,需要的朋友可以参考下
4. 在原日期的基础上加上增加的天数 5. 比较连个日期的大小,只有年月日参加比较 6. 比较连个日期的大小,只有年月日参加比较 7. 返回近12个月的年月(含给定月) 8. 获取指定年份日历 9. 获取指定年指定周的开始...
返回0; y年m月的总天数; 算出农历,传入日期物件,传回农历日期物件(.year .month .day .isLeap .yearCyl .dayCyl .monCyl); y年某m+1月的天数 传回干支, 0=甲子 中文日期 中文月份 更多资料可登录:...
把符合日期格式的字符串转换为日期类型;把符合日期格式的字符串转换为 日期类型; 获取当前时间的制定格式;两个日期相减;...返回日期的天;返回日期的月;返回日期的年;计算两个日期的相差的天数
与现在的日期对比 得到天数、计算两个日期间相隔的日子、获取今天的日期的字符串、获取当前月份,* @return 返回字符串 格式:两位数、获取昨天的日期的字符串等,还可以计算员工的工作天数,如在使用期和离职期该...
在某个时间基础上,往前推或者往后推几个年,返回[年-月-日]格式的日期;判断时间是否在时间段内;获取某年最后一天日期;在原日期的基础上增加/减少小时数;获取年份中的天数;如果当前时间是节假日,返回下一个...
计算日期A和日期B相差天数,A小于B且A与B不在同一年时,把天数分为三段: (1)A到A所在年份12月31日的天数; (2)A所在年份后整年部分(A、B在相邻年份时无整年部分); (3)B所在年份1月1日到B的天数。 若A...
* 得到当前时间指定天数之前几天的日期 * @param days 指定的天数 * @return */ public static Date getFormerDateOfDays(int days) /** * 得到当前时间之前几个小时的日期 * @param hours 指定的...
Julian历法是用年以及这一年中的第几天来表示日期。设计一个函数,将Julian历法表示的日期转换成月和日,如Mar 8(注意闰年的问题)。...如果参数有错,如天数为第370天,返回NULL指针,此使屏幕无打印输出。
在日期上增加天数 6.在日期上增加n分钟 7.两个时间相差距离多少天多少小时多少分多少秒 8.按默认格式的字符串距离今天的天数 9.比较两个时间的大小 HH:mm:ss 10.按用户格式字符串距离今天的天数 11.cron...