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 获取指定...
在实际应用中,日期函数的使用非常广泛,例如计算两个日期间的工作天数、获取当前月份的第一天和最后一天、计算日期所在的周数、弹出选择周的对话框等。 1. 计算两个日期间的工作天数 在实际应用中,我们需要计算...
* 如果起始日期或终止日期为空或非日期型数据, NETWORKDAYS 函数将返回错误值。 * NETWORKDAYS 函数可以与其他函数结合使用,例如,使用 TODAY 函数获取当前日期,并与 NETWORKDAYS 函数结合计算当前日期到某个日期...
* `DAYOFWEEK()`: 返回日期的星期索引,范围从 1 到 7,分别对应星期天、星期一、星期二、星期三、星期四、星期五和星期六。 * `WEEKDAY()`: 返回日期的星期索引,范围从 0 到 6,分别对应星期一、星期二、星期三、...
解析常用的中文日期并返回日期对象。 add--日期加减操作。[注:此函数在上传时还存在一个BUG。请下载后把此函数内的第一行"var regExp = /^\d+$/;" 改为 "var regExp = /^([+-])?\d+$/;", 要不然就做不了减法。] ...
计算两个时间之间的年数、月数、天数、时、分、秒,计算两个时间之间的年数、月数、天数、时、分、秒
头歌python本月天数 头歌Python本月天数计算教程 一、引言 在Python编程中,经常需要处理与时间相关的任务,包括日期的...该方法返回一个表示当前日期的datetime.date对象。 python from datetime import date tod
该函数可以根据指定的开始日期和结束日期返回按每年 360 天计算的天数差值。 六、EDATE 函数 EDATE 函数用于返回在开始日期之前或之后指定月数的某个日期的系列数。其语法为:EDATE(开始日期、月数)。该函数可以...
在指定的日期上增加天数 ,7.在指定的日期上减去天数 ,8.为时间增加分钟,9.为时间减去分钟 ,10两个日期大小比较,11.判断时间是否超过一定的小时数 ,12获取当前日期往后一定的年数,13.计算两个日期之间相差的...
* DAYOFWEEK(date):返回日期的星期索引(0=星期一,1=星期二,..., 6=星期天)。 * DAYOFMONTH(date):返回日期的月份中日期,在1到31范围内。 * DAYOFYEAR(date):返回日期在一年中的日数,在1到366范围内。 * ...
java获取某年某月到某年某月按天的切片日期集合(间隔天数的集合)、获取某年某月按天切片日期集合(某个月间隔多少天的日期集合)、指定天的开始和结束日期、返回某个日期前几天的日期并转换成字符串
DAYOFMONTH() 函数返回日期或日期时间表达式的月份中的天数,范围从 1 到 31。 示例:SELECT DAYOFMONTH('1998-02-03'); -> 3 5. DAYOFYEAR() 函数 DAYOFYEAR() 函数返回日期或日期时间表达式是一年中的天数,...
接着,根据农历年份和月份,计算出该月份的天数和第一天的日期。如果需要,将公历日期调整为该月份的正确日期。最后,根据农历年份、月份和日期,创建一个对应的Calendar对象,并返回该对象作为结果。
DAY 函数用于返回用序列号表示的某日期的天数,用整数 1 到 31 表示。语法为 DAY(serial_number),其中 serial_number 是要查找的天数日期。 例如,公式“=DAY("2021/1/27")”返回 27,=DAY(35825) 返回 30,=DAY...
DAY函数:DAY函数的用途是返回用序列号表示的某日期的天数,用整数1到31表示。它的语法是DAY(serial_number),其中serial_number是要查找的天数日期,它有多种输入方式:带引号的文本串、序列号、其他公式或函数的...