按照 **** ** **(年 月 日,比如2023 4 25)格式输入一个具体的年月日期,通过程序计算: 该日期是这一年度的第几天。 如果输入格式非法或日期本身无效,则输出“输入日期有误!”的提示。
时间: 2024-06-18 16:05:52 浏览: 168
可以通过以下程序实现该功能:
```
#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 days[] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
if (isLeapYear(year)) {
days = 29;
}
if (month < 1 || month > 12 || day < 1 || day > days[month]) {
return -1;
}
int sum = 0;
for (int i = 1; i < month; i++) {
sum += days[i];
}
sum += day;
return sum;
}
int main() {
int year, month, day;
cout << "请输入日期(格式:**** ** **): ";
scanf("%d %d %d", &year, &month, &day);
int dayOfYear = getDayOfYear(year, month, day);
if (dayOfYear == -1) {
cout << "输入日期有误!" << endl;
} else {
cout << "该日期是这一年度的第" << dayOfYear << "天。" << endl;
}
return 0;
}
```
其中,`isLeapYear`函数用于判断某一年是否为闰年,`getDayOfYear`函数用于计算某一日期是一年中的第几天。在`main`函数中,首先从用户输入中获取年月日数据,然后调用`getDayOfYear`函数得到计算结果。
阅读全文