程序分析: 以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