题目描述
定义一个包括年、月、日的结构体变量,读入年、月、日,计算该日在当年中是第几天。注意闰年问题。 请写一个函数days实现计算,将读入的结构体变量传递给days函数,计算后将答案返回给main函数进行输出。
输入
三个整数,分别表示年、月、日。保证输入是实际存在的日期,且年份在1000至3000之间(包含1000和3000)。
输出
输出该日期是一年中的第几天。 请注意行尾输出换行。
#include<bits/stdc++.h>
using namespace std;
struct date {
int y, m, d;
inline bool leap() {
return y % 4 == 0 && y % 100 != 0 y % 400 == 0;
}
inline int getMonthDay(int m) {
if (m == 1 m == 3 m == 5 m == 7 m == 8 m == 10 m == 12)return 31;
if (m == 4 m == 6 m == 9 m == 11)return 30;
if (leap())return 29;
return 28;
}
};
int days(date d) {
int ret = d.d;
for (int i = 1; i < d.m; i++)
ret += d.getMonthDay(i);
return ret;
}
int main() {
date d;
cin >> d.y >> d.m >> d.d;
cout << days(d) << endl;
return 0;
}