Description
Input
Output
Sample Input
1730 1740 1750 1751 -1
Sample Output
2004-09-26 Sunday 2004-10-06 Wednesday 2004-10-16 Saturday 2004-10-17 Sunday
month = 1; day = 1; yd = 29; md = 31; for(i = 1; i <= x; i++){ day++; if(day == md + 1) { month++; if( month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12 ) { md = 31; day = 1; } else if( month == 4 || month == 6 || month == 9 || month == 11 ) { md = 30; day = 1; } else { md = yd; day = 1; } if(month == 13) { month = 1; md = 31; year++; if( judge(year) ) { yd = 29; } else { yd = 28; } } } //switch((x+1) % 7)#1 switch(x % 7) { case 6: strcpy(s, "Friday"); break; case 0: strcpy(s, "Saturday"); break; case 1: strcpy(s, "Sunday"); break; case 2: strcpy(s, "Monday"); break; case 3: strcpy(s, "Tuesday"); break; case 4: strcpy(s, "Wednesday"); break; case 5: strcpy(s, "Thursday"); } } printf("%d-", year); if(month <= 9) printf("0%d-", month); else printf("%d-", month); if(day <= 9) printf("0%d ", day); else printf("%d ", day); printf("%s\n", s); //printf("%d\n", i - 1); } return 0; }
note:
#1:x是多少天,所以在switch中设置星期几时应以多少天后为标准,即几天后是星期几。
感想:思路是一天天比较(从日到月再到年),超时的原因是天数多时我的方法就显得笨重了。