程序分析: 以3月5日为例,应该先把前两个月的加起来,然后再加.上5天即本年的第
几天。
特殊情况:闰年且输入月份大于3时需考虑多加一天。
闰年的条件: year除以400能整除,或者year除以4能整除,但是不能是100的倍数 分为三个方法
//方法一:
static void getTotalDays(int year,int month,int day){
int total = 0;//总天数
for (int i = 1; i < month ; i++) {
switch(i){
case 1 : case 3: case 5: case 7: case 8: case 10: case 12: total +=31;break;
case 4 : case 6: case 9: case 11: total +=30;break;
default: if (i==2){
if (year%4==0&&year%100!=0||year%400==0){
total+=29;
}else{
total+=28;
};break;
}
}
}
total+=day;
System.out.println("这一天是这一年的第" + total);
}
//方法二:
static void TotalDays(int year,int month,int day) {
int total = 0;//总天数
for (int i = 1; i < month; i++) {
if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12) {
total += 31;
} else if (i == 4 || i == 6 || i == 9 || i == 11 ) {
total += 30;
} else {
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
total += 29;
} else {
total += 28;
}
}
}
total += day;
System.out.println("这一天是这一年的第" + total);
}
//方法三:
public static void totalDays(int year, int month, int day) {
int totaldays = 0;
if (month <= 12 && day <= 31) { //判断年月日对不对
for (int i = 1; i < month; i++) {
switch (i) {
case 1:
totaldays += 31;
break;
case 3:
totaldays += 31;
break;
case 5:
totaldays += 31;
break;
case 7:
totaldays += 31;
break;
case 8:
totaldays += 31;
break;
case 10:
totaldays += 31;
break;
case 4:
totaldays += 30;
break;
case 6:
totaldays += 30;
break;
case 9:
totaldays += 30;
break;
case 11:
totaldays += 30;
break;
case 2:
totaldays += 28;
break;
}
}
if (month > 2) {
if (year % 4 == 0 && year % 400 != 0 || year % 400 == 0) {
System.out.println("这一天是这一年的第" + (totaldays + 1 + day) + "天");
} else {
System.out.println("这一天是这一年的第" + (totaldays + day) + "天");
}
} else {
System.out.println("这一天是这一年的第" + (totaldays + day) + "天");
}
}else {
System.out.println("输入错!请检查输入!");
}
}
本文地址:https://blog.csdn.net/weixin_48262880/article/details/107265333
如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!