-
[1007] 第几天
- 时间限制: 1000 ms 内存限制: 65535 K
- 问题描述
-
有一本记录了从1年到9999年的日历,
假设1年1月1日为第一天,现在问第Y年的第M月的第D天是第几天。
- 输入
-
有一本记录了从1年到9999年的日历,
假设1年1月1日为第一天,现在问第Y年的第M月的第D天是 第几天。
- 输出
-
对于每组数据,输出这是第几天。
- 样例输入
-
2 1 1 1 2 2 2
- 样例输出
-
1 398
#include<iostream>
using namespace std;
int Y[5] = { 0,365,730,1095,1461};
int M[13] = { 0,31,59,90,120,151,181,212,243,273,304,334,365};
int main() {
int n;
int y, m, d;
int yy, mm, dd;
int ans;
cin >> n;
while (n--) {
cin >> y >> m >> d;
ans = 0;
bool flag=false;
if (y % 400 == 0 || (y % 4 == 0 && y % 100 != 0)) flag = true;
ans += (y - 1) / 400 - (y - 1) / 100;
yy = (y - 1)/4;
y = (y - 1) % 4;
ans += yy*Y[4]+Y[y];
mm = m - 1;
ans += M[mm];
ans += d;
if (flag&&m > 2) ans++;
cout << ans << endl;
}
}