classSolution{public:boolisLeap(int year){if((year %4==0&& year %100!=0)|| year %400==0)returntrue;returnfalse;}int w[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
string week[7]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
string dayOfTheWeek(int day,int month,int year){//1971-1-1 是周五 week[4];//算出距离1971-1-1之间间隔多少(sum)天.int sum =0;int y =1971, m =1, d =1;while(y < year){if(isLeap(y)) sum +=366;else sum +=365;
y ++;}//cout << y << ' ' << m << ' ' << d << ' ';//month, day 距离 m, d多少天if(isLeap(year)) w[2]++;//闰年 2月29天while(m <= month){if(m == month && d == day)break;//如果正好 month 和day都相等
d ++;if(d > w[m]){
d =1;
m ++;}
sum ++;}//cout << sum << ' ' << sum % 7;return week[(sum +5)%7];}};
classSolution{public:boolisLeap(int year){if((year %4==0&& year %100!=0)|| year %400==0)returntrue;returnfalse;}//将字符转为intintchange_int(char c,int s){return(c -'0')* s;}int w[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};intdayOfYear(string date){//将data 转为 int日期int year =change_int(date[0],1000)+change_int(date[1],100)+change_int(date[2],10)+change_int(date[3],1);int month =change_int(date[5],10)+change_int(date[6],1);int day =change_int(date[8],10)+change_int(date[9],1);if(isLeap(year)) w[2]++;//闰年的2月29天int m =1, d =1, sum =1;//月、天、当年的第sum天while(m <= month){if(m == month && d == day)break;
d ++;if(d > w[m]){
d =1;
m ++;}
sum ++;}return sum;}};