public class Demo {
public static void main(String[] args) {
int years = 2000;//年
int month = 1;//月
int days = 1;//日
int weekDay = 6;//星期
int yearsDay;//用于判断闰年平年天数
int monthDay = 0;//用于记录每个月的天数
int meter = 0;
boolean loop = true;
while(loop) {
//判断闰年 平年
if ((years % 4 == 0 && years % 100 != 0) || years % 400 == 0) {
yearsDay = 366;
}else {
yearsDay = 365;
}
for(int i = 1 ;;i++) {
//10月1日包含 所以是10月2日判定退出
if (years == 2020 && month == 10 && days == 2) {
loop = false;
break;
}
switch (month) {
//每个月的天数
case 2:
//闰年 平年二月天数判断
if(yearsDay == 366) {
monthDay = 29;
}else {
monthDay = 28;
}
break;
case 4:
case 6:
case 9:
case 11:
monthDay = 30;
break;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
monthDay = 31;
break;
}
//每周一 或者 月初
if(weekDay == 1 || days == 1) {
meter += 2;
weekDay++;
days++;
}else {
meter += 1;
weekDay++;
days++;
}
//月增加 月的天数变为1
if(days > monthDay) {
days = 1;
month++;
}
//星期刷新
if(weekDay > 7) {
weekDay = 1;
}
//年增加 月刷新
if(i == yearsDay) {
years++;
month = 1;
break;
}
}
}
System.out.println(meter);
}
}