package 算法;
import java. util. HashMap;
import java. util. Map;
public class 跑步锻炼 {
public static void main ( String[ ] args) {
int year = 2000 ;
int weekOne = 6 ;
int lastMonth= 12 ;
int lastDay= 31 ;
int sum = 0 ;
for ( int i = year; i <= 2020 ; i++ ) {
if ( i== 2020 ) {
lastMonth= 10 ;
lastDay= 1 ;
}
Map< String, Integer> map = getMonSum ( i, lastMonth, lastDay, weekOne) ;
int index = map. get ( "index" ) ;
weekOne = map. get ( "weekDay" ) ;
sum += index;
}
System. out. println ( sum) ;
}
public static Map< String, Integer> getMonSum ( int year, int month, int day, int weekDay) {
int index = 0 ;
int [ ] arr1 = { 31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 } ;
int [ ] arr2 = { 31 , 29 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 } ;
int flag = 0 ;
if ( year % 4 == 0 ) {
flag = 1 ;
}
for ( int i = 1 ; i <= month; i++ ) {
int n = 0 ;
if ( flag == 1 ) {
n = arr2[ i - 1 ] ;
} else {
n = arr1[ i - 1 ] ;
}
if ( i == month)
n = day;
for ( int j = 1 ; j <= n; j++ ) {
if ( ( j == 1 || weekDay == 1 ) ) {
index+= 2 ;
} else {
index++ ;
}
weekDay = weekDay % 7 + 1 ;
}
}
Map< String, Integer> map = new HashMap < > ( ) ;
map. put ( "index" , index) ;
map. put ( "weekDay" , weekDay) ;
return map;
}
}