A27705. 第几天(day)
填空题
中等
知识点
题目描述
第几天(day)
题目描述
给定一个日期,求这一天是当年的第几天。每年的元旦,1月1日,都是每年的第一天,但是每年的最后一天,12月31日,有可能是第365天,也有可能是第366天,因为闰年的二月是29天,平年的二月是28天。一月、三月、五月、七月、八月、十月、十二月都是31天,四月、六月、九月、十一月都是30天。能被4整除但不能被100整除,或者能被400整除的年份为闰年。
输入格式
一行,包含正整数,它们分别表示年、月、日。
输出格式
一个整数,为输入所代表的一天在当年的第几天。每年的元旦为一年中的第一天。
输入输出样列
输入样例1
2021 10 17
输出样例1
290
参考答案
#include <bits/stdc++.h>
#define FOR(i, a, b) for(int i = a; i <= b; i ++ )
#define DOR(i, a, b) for(int i = b; i >= a; i -- )
using namespace std;
typedef long long LL;
typedef unsigned long long ULL;
const int N = 20;
int dat[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int y, m, d;
int main () {
cin >> y >> m >> d;
if (y % 400 == 0 || (y % 4 == 0 && y % 100 != 0)) dat[2] ++;
for (int i = 1; i <= 12; i ++ ) dat[i] += dat[i - 1];
cout << dat[m - 1] + d;
return 0;
}
上一题
下一题