用C++代码写一个程序。输入三个正整数month、day、year分别表示月、日、年。首先检 验输入是否表示一个合法的日期,如果是合法日期则输出此日期为该年的第几天,假设输入总是正整数。
时间: 2024-10-24 14:08:16 浏览: 23
以下是一个简单的C++程序,用于判断输入的日期是否合法,并计算出该日期所在的年内的天数。这个程序假设月份有30天(除了2月),并且闰年有29天:
```cpp
#include <iostream>
using namespace std;
bool isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
int daysInMonth(int month, int year) {
if (month == 2) {
if (isLeapYear(year)) {
return 29;
} else {
return 28;
}
} else if (month >= 3 && month <= 11) {
return 30;
} else { // 1月和12月
return 31;
}
}
int main() {
int month, day, year;
cout << "请输入月份(month): ";
cin >> month;
cout << "请输入日期(day): ";
cin >> day;
cout << "请输入年份(year): ";
cin >> year;
if (month < 1 || month > 12 || day < 1 || day > daysInMonth(month, year)) {
cout << "输入的日期不是合法的!" << endl;
} else {
int totalDays = 0;
for (int i = 1; i < month; ++i) {
totalDays += daysInMonth(i, year);
}
totalDays += day - 1; // 加上当前月之前的天数
cout << "该日期在该年的第 " << totalDays << " 天。" << endl;
}
return 0;
}
```
在这个程序中,我们首先检查月份是否在1到12之间,以及日期是否在给定月份内。然后根据月份调整总天数,并处理闰年的情况。
阅读全文