public class betweendate {
public int isLeapYear(int year)
{
return (year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0) ? 1 : 0;
}
public int getDaySub(int startYear, int startMonth, int startDay, int endYear, int endMonth, int endDay)
{
int totalDay = 0;
for (int i = 0; i <= (endYear - startYear); i++)
{
if (i == 0) // 第一年
{
for (int j = startMonth; j < 13; j++) {
int month = j;
int days = getMonthDays(startYear, month);
// 第一年的开始月份
if (j == startMonth)
{
days = getMonthDays(startYear, month) - startDay;//得到开始那个月的剩余天数
}
totalDay += days;
}
}
else if (i == (endYear - startYear)) // 最后一年
{
for (int j = 1; j <= endMonth; j++) {
int month = j;
int eDay = getMonthDays(endYear, month);
// 结束日期的最后一天小于最后一月的天数
if (j == endMonth && endDay < eDay) {
eDay = endDay;
}
totalDay += eDay;
}
// 中间年
}
else {
int year = startYear + i;
totalDay += (365+isLeapYear(year));
}
}
return totalDay;
}
public int getMonthDays(int year, int month) //判断本月多少天
{
if (month == 2)
{
return isLeapYear(year)+28;
}
else if (month == 4 || month == 6 || month == 9 || month == 11)
{
return 30;
}
else {
return 31;
}
}
public static void main(String[] args) {
betweendate t = new betweendate();
int r = t.getDaySub(1999, 3, 12, 2021, 10, 20);
System.out.println(r);
}
}
java计算两个日期的天数差
最新推荐文章于 2024-05-27 00:20:08 发布