题目描述
以 年-月-日
的形式给定一个日期,计算给定的日期是当年第几天。注意闰年二月有 2929 天。
输入格式
输入格式为 yyyy-mm-dd
,其中
yyyy
表示给定的年份,mm
表示给定的月份,dd
表示给定的日期。- 如果这些数字不足四位或二位,以
0
补足。 - 保证月份与日期都是合理的。
输出格式
单个整数:表示输入的日期是当年的第几天。
样例数据
输入:
2021-12-31
输出:
365
输入:
2022-01-01
输出:
1
详见代码:
#include <bits/stdc++.h>
using namespace std;
int main() {
int y, m, d;
char t;
int ans = 0;
cin >> y >> t >> m >> t >> d;
//循环计算从1月到m的上一个月,即整月的天数
for (int i = 1; i < m; i++) {
if (i == 2) {//二月判断是否闰年
if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0) {
ans += 29;
} else {
ans += 28;
}
} else if(i==4||i==6||i==9||i==11){//小月
ans += 30;
}else{//大月
ans+=31;
}
}
ans += d;//加上当月天数
cout << ans << endl;
return 0;
}