用java语言实现2020年1月1号到2022年7月3号之间的间隔天数
1.思路
1.算出2020年1月1号到2021年12月31号之间的间隔天数sumYear
2.算出2022年1月1号到2022年6月30号之间的间隔天数sumMonth
3.得出7月份已经过了多少天了sumDay
4.得出题目所求间隔sum=sumYear+sumMonth+sumDay;
2.思路对应的代码
a.求2020年1月1号到2021年12月31号之家的间隔天数
//核心:就是需要判断当前年当是否是闰年,若是,则累加366天,若不是,则累加365天
for (int i = startYear; i <endYear; i++){
sumYear+=365;
if(isLeapYear(i)){
sumYear++;
//如果为闰年就是366天
}
}
b.求2022年1月1号到2022年6月30号之间的间隔天数
//核心:也需要判断此年是否是闰年,若是,则2月份有29天,则是2月份都28天
for (int j = 1; j<endMonth; j++) {
switch(j){
case 2:
sumMonth+=28;
if(isLeapYear(endYear)){
sumMonth++;
//如果是闰年就二月就为29天
}
break;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
sumMonth+=31;
break;
case 4:
case 6:
case 9:
case 11:
sumMonth+=30;
break;
default:
System.out.println("非正常值");
break;
}
}
c.得出7月份已经过了多少天了
sumDay=endDay;
d.得出间隔天数sum
sum=sumDay+sumMonth+sumYear;
f.判断是否闰年
//判断是否是闰年
public static boolean isLeapYear(int year){
//能被400整除或者能被4整除且不能为100整除的年份是闰年
if(year%400==0||(year%4==0&&year%100!=0)){
return true;
}
return false;
}
3.源代码
public class DistanceDay {
public static void main(String[] args) {
//DistanceDay是距离天数的意思
int sum=0,sumYear=0,sumMonth=0,sumDay=0;
//起始日期为2020年1月1号
int startYear=2010,startMonth=1,startDay=1;
//终止日期为2022年7月3号
int endYear=2022,endMonth=7,endDay=3;
for (int i = startYear; i <endYear; i++){
sumYear+=365;
if(isLeapYear(i)){
sumYear++;
//如果为闰年就是366天
}
}
for (int j = 1; j<endMonth; j++) {
switch(j){
case 2:
sumMonth+=28;
if(isLeapYear(endYear)){
sumMonth++;
//如果是闰年就二月就为29天
}
break;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
sumMonth+=31;
break;
case 4:
case 6:
case 9:
case 11:
sumMonth+=30;
break;
default:
System.out.println("非正常值");
break;
}
}
sumDay=endDay;
sum=sumDay+sumMonth+sumYear;
System.out.println("天数为: "+sum);
}
//判断是否是闰年
public static boolean isLeapYear(int year){
//能被400整除或者能被4整除且不能为100整除的年份是闰年
if(year%400==0||(year%4==0&&year%100!=0)){
return true;
}
return false;
}
}