c++输入任意日期输出它是年内第几天
时间: 2023-04-25 07:05:33 浏览: 123
以下是C++代码实现:
```c++
#include <iostream>
using namespace std;
bool isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
}
int getDayOfYear(int year, int month, int day) {
int daysOfMonth[] = {31, 28 + isLeapYear(year), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int dayOfYear = 0;
for (int i = 0; i < month - 1; i++) {
dayOfYear += daysOfMonth[i];
}
dayOfYear += day;
return dayOfYear;
}
int main() {
int year, month, day;
cout << "请输入日期(格式:年 月 日):" << endl;
cin >> year >> month >> day;
int dayOfYear = getDayOfYear(year, month, day);
cout << year << "年" << month << "月" << day << "日是该年的第" << dayOfYear << "天。" << endl;
return 0;
}
```
代码中的 `isLeapYear` 函数用于判断是否为闰年,根据闰年的定义,能被4整除但不能被100整除的年份为闰年,或者能被400整除的年份也为闰年。
`getDayOfYear` 函数用于计算给定日期在该年中是第几天,首先定义了每个月的天数,其中2月的天数需要根据是否为闰年来确定。然后遍历到给定日期的前一个月,累加该月的天数,最后再加上给定日期的天数即可。
在 `main` 函数中,先读入年月日,然后调用 `getDayOfYear` 函数计算该日期在该年中是第几天,最后输出结果。
阅读全文