// 定义一周的中文名称
public static String[] week = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
// 定义平年每月天数
public static int[] monthday1 ={0,31,28,31,30,31,30,31,31,30,31,30,31};
// 定义闰年每月天数
public static int[] monthday2 ={0,31,29,31,30,31,30,31,31,30,31,30,31};
/**
* 计算两个日期之间的天数差,并返回包含距离天数和星期的字符串。
*
* @param year 年份
* @param month 月份
* @param day 日期
* @param newMonth 新的月份
* @param newDay 新的日期
* @return 返回格式化后的字符串,包含天数差和对应的星期
*/
public static String distance(int year, int month, int day, int newMonth, int newDay){
int sum = 0;
// 当月和新月总和大于等于12,说明跨年计算
if (month + newMonth >= 12) {
// 计算闰年和非闰年的天数差
if (((year+1)%4 == 0 && (year+1)%100 != 0) || (year+1)%400 == 0){
// 闰年总天数
sum += 366 + newDay;
// 累加新年的月份天数
for (int i = 0; i < newMonth-12;i++){
sum += monthday2[i];
}
} else {
// 非闰年总天数
sum += 365 + newDay;
// 累加新年的月份天数
for (int i = 0; i < newMonth-12;i++){
sum += monthday1[i];
}
}
} else {
// 同一年内计算天数差
for (int i=0;i<newMonth;i++) {
sum += monthday1[i];
}
sum += newDay;
}
// 返回计算结果,包含天数差和对应的星期
return "距离天数:" + sum + ";" + week[sum%7];
}
标签:int,天数,31,30,请算出,API,year,周几,sum
From: https://www.cnblogs.com/ningl666/p/18066466