定义一个包含年月日的结构体,并计算该日是该年的第几天,注意闰年问题
时间: 2023-11-28 19:08:01 浏览: 106
以下是一个例子,定义了一个名为Date的结构体,包含年月日三个成员变量,并实现了一个函数来计算该日期是该年的第几天,考虑了闰年的情况。
```c++
#include <iostream>
using namespace std;
struct Date {
int year;
int month;
int day;
};
bool isLeapYear(int year) {
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
return true;
} else {
return false;
}
}
int daysInMonth(int year, int month) {
switch (month) {
case 2:
if (isLeapYear(year)) {
return 29;
} else {
return 28;
}
case 4:
case 6:
case 9:
case 11:
return 30;
default:
return 31;
}
}
int dayOfYear(Date date) {
int days = date.day;
for (int i = 1; i < date.month; i++) {
days += daysInMonth(date.year, i);
}
return days;
}
int main() {
Date date = {2021, 3, 15};
int day = dayOfYear(date);
cout << day << endl; // 输出75,即2021年的第75天
return 0;
}
```
需要注意的是,闰年的判断方法是:如果该年能够被4整除但不能被100整除,或者能够被400整除,则该年为闰年。在计算每个月的天数时,需要考虑2月份的天数,如果是闰年则为29天,否则为28天。
阅读全文