目录
某年某月的某一天

** 某年某月的某一天:** <Excerpt in index | 首页摘要>

<The rest of contents | 余下全文>

某年某月的某一天
Time Limit: 1000 MS Memory Limit: 32768 K
Total Submit: 58(31 users) Total Accepted: 32(26 users) Rating: Special Judge: No
Description
因为大雄考了有史以来也是唯一一次的100分,叮当猫答应带大雄去未来看一看。但是笨蛋大雄把时光机的时间调错了,结果回到了古代。叮当猫的时光机是这么用的:输入一个数n,时光机就会去到n天后或者是n天前,然后选择是往未来还是回古代。但是大雄只记得输入n天,忘了选择是去未来了。

现在告诉你大雄输入的天数,请你算出本来他们打算去的是未来哪一天以及现在在古代的哪一天。以今天,即2013年9月7号为当前天数,即算出2013年9月7号的n天前和n天后是几年几月几日。

Input
第一行输入一个数T,表示有T组样例。

接下来T行是T组数据,每组数据包含一个正整数n(n<=100000)。

Output
请计算并输出大雄本来打算去的未来的某年某月某日,以及最后去了的古代的某年某月某日。

输出日期格式为YYYY/MM/DD,两个日期中间用一个空格隔开,每组数据占一行,详情参考simple output。

Sample Input
3

18

26

31

Sample Output
2013/09/25 2013/08/20

2013/10/03 2013/08/12

2013/10/08 2013/08/07

Author
曾卓敏

做麻烦了 我的代码:

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<iostream>
#include<queue>
using namespace std;
bool check(int year)
{
if((year%4==0&&year%100!=0)||(year%400==0))
{
return true;
}
return false;
}
int year,month,day;
void up(int n)
{
year=2013;
month=9;
day=7;
if(n>=24)
{
n-=24;
month=10;
day=1;
}
while(n>0)
{
if(month==2)
{
if(check(year))
{
if(n>=29)
{
n-=29;
month++;
day=1;
}
else
{
day+=n;
n=0;

}
}
else
{
if(n>=28)
{
n-=28;
month++;
day=1;
}
else
{
day+=n;
n=0;

}
}
}
else if((month==1)||(month==3)||(month==5)||(month==7)||(month==8)||(month==10)||(month==12))
{
if(n>=31)
{
n-=31;
month++;
if(month>12)
{
year++;
month=1;
}
day=1;
}
else
{
day+=n;
n=0;
}
}
else
{
if(n>=30)
{
n-=30;
month++;
day=1;
}
else
{
day+=n;
n=0;
}
}
}
}
void down(int n)
{
year=2013;
month=9;
day=7;
if(n>=7)
{
n-=7;
day=31;
month--;
}
while(n>0)
{
if(month==3)
{
if(n>=31)
{
if(check(year))
{
n-=31;
month--;
day=29;
}
else
{
n-=31;
month--;
day=28;
}
}
else
{
day-=n;
n=0;
}
}
else if((month==1)||(month==8))
{
if(n>=31)
{ month
--;
if(month==0)
{ year
--; month
=12;
} day
=31; n
-=31;
}
else
{ day
-=n; n
=0;
}
}
else if((month==5)||(month==7)||(month==10)||(month==12))
{
if(n>=31)
{ month
--; day
=30; n
-=31;
}
else
{ day
-=n; n
=0;
}
}
else if(month==2)
{
if(check(year))
{
if(n>=29)
{ n
-=29; day
=31; month
--;
}
else
{ day
-=n; n
=0;
}
}
else
{
if(n>=28)
{ n
-=28; day
=31; month
--;
}
else
{ day
-=n; n
=0;
}
}
}
else
{
if(n>=30)
{ n
-=30; month
--; day
=31;
}
else
{ day
-=n; n
=0;
}
}
}
}

int main()
{
int T;
while(~scanf("%d",&T))
{
while(T--)
{
int n; scanf
("%d",&n); up
(n); printf
("%04d/%02d/%02d ",year,month,day); down
(n); printf
("%04d/%02d/%02d\n",year,month,day);
}
}
return 0;
}
文章作者: 爱笑的k11
文章链接: http://1315402725.github.io/posts/50e95a5b/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 爱笑的k11
打赏
  • 微信
  • 支付寶

评论