打印日期

题目

代码

 1 #include<iostream>
 2 #include<algorithm>
 3 using namespace std;
 4 
 5 int ISYEAP(int x){
 6     if((x%100!=0 && x % 4 == 0) || (x % 400 == 0) )return 1;
 7     else return 0;
 8 }
 9 int dayOfMonth[13][2] = {
10     0,0,
11     31,31,
12     28,29,
13     31,31,
14     30,30,
15     31,31,
16     30,30,
17     31,31,
18     31,31,
19     30,30,
20     31,31,
21     30,30,
22     31,31
23 };
24 typedef struct Date{
25     int Day;
26     int Month;
27     int Year;
28     void nextDay(){
29         Day++;
30         if(Day > dayOfMonth[Month][ISYEAP(Year)]){
31             Day = 1;
32             Month++;
33             if(Month > 12){
34                 Month = 1;
35                 Year++;
36             }
37         }
38     }
39 }Date;
40 
41 int buf[3001][13][32];
42 int main(){
43     Date tmp;
44     tmp.Year = 0,tmp.Month = 1,tmp.Day = 1;
45     int cnt = 0;
46     while(tmp.Year != 3001){
47         buf[tmp.Year][tmp.Month][tmp.Day] = cnt;
48         tmp.nextDay();
49         cnt++;
50     }
51     int y;
52     int days;
53     while(scanf("%d%d",&y,&days) != EOF){
54         for(int i = 1;i <= 12;i++){
55             for(int j = 1;j <= 31;j++){
56                 if(buf[y][i][j] - buf[y][1][1] + 1  == days){
57                     printf("%d-%02d-%02d\n",y,i,j);
58                 }
59             }
60         }
61     }
62     return 0;
63 }

 

posted @ 2021-03-02 17:49  Uitachi  阅读(81)  评论(0编辑  收藏  举报