【工具】时间工具类
程序员文章站
2024-01-14 09:51:04
...
/**
* @Description 计算某月有多少天
* @Param [year, month]
* @return int
**/
public static int numOfMonth(int year,int month) {
int[] intArray={31,28,31,30,31,30,31,31,30,31,30,31};
if((year % 4 == 0 && year % 100 != 0)||(year % 400 == 0)){
intArray[1] = 29;//闰年天数加1
}
return intArray[month-1];
//1月的天数对应数组下标为0,所以这里为[month-1]
}
/**
* @Description 计算任意两天相隔天数
* @Param [date1, date2]
* @return int
**/
public static int differentDays(Date date1, Date date2) {
Calendar cal1 = Calendar.getInstance();
cal1.setTime(date1);
Calendar cal2 = Calendar.getInstance();
cal2.setTime(date2);
int day1 = cal1.get(Calendar.DAY_OF_YEAR);
int day2 = cal2.get(Calendar.DAY_OF_YEAR);
int year1 = cal1.get(Calendar.YEAR);
int year2 = cal2.get(Calendar.YEAR);
if (year1 != year2) // 同一年
{
int timeDistance = 0;
for (int i = year1; i < year2; i++) {
if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {// 闰年
timeDistance += 366;
} else {// 不是闰年
timeDistance += 365;
}
}
return timeDistance + (day2 - day1);
} else {// 不同年
return day2 - day1;
}
}
上一篇: 请教并发写入数据库,怎么保持唯一性
下一篇: 《NoSQL精粹》读后感(一)