因为每月天数不一样,而且没什么规律,用if,for这些来算比较麻烦,而用switch则看上去很清晰明朗,感觉像是break;的妙用
思路:这个月的第几天为这个月前面所有月的天数+这个月的天数,所以,每个月加的是上一个月的天数。
int year=2000,month=12,day=31;//定义年月日 int sum=0;//定义总时长 switch(month){ case 12:sum=30; case 11:sum+=31; case 10:sum+=30; case 9:sum+=31; case 8:sum+=31; case 7:sum+=30; case 6:sum+=31; case 5:sum+=30; case 4:sum+=31; case 3: if(year%4==0&&year%100!=0||year%400==0){ sum+=29; }else{ sum+=28; } case 2:sum+=31; case 1:sum+=day; } System.out.println(sum);