用3个整数表示一个日期的年、月、日,例如1998、4、17,计算这个日期是当年的第几天,还要考虑闰年的情况。输入3个正整数。输出天数。用c++实现
时间: 2024-11-17 10:29:09 浏览: 1
Python编程实现输入某年某月某日计算出这一天是该年第几天的方法
在 C++ 中,你可以通过编写一个函数来实现这个功能。首先,我们需要检查给定的年份是否是闰年,因为二月份在闰年会有29天。接下来,我们可以计算每个月的天数,并累加到总天数上。这里是一个简单的示例:
```cpp
#include <iostream>
using namespace std;
bool isLeapYear(int year) {
if (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)) {
return true;
}
return false;
}
int daysInMonth(int month, int year) {
switch(month) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
return 31;
case 4: case 6: case 9: case 11:
return 30;
default:
if (isLeapYear(year))
return 29;
else
return 28;
}
}
int calculateDay(int day, int month, int year) {
int totalDays = 0;
for (int i = 1; i < month; i++) {
totalDays += daysInMonth(i, year);
}
totalDays += day;
return totalDays;
}
int main() {
int year, month, day;
cout << "请输入年月日(例如:1998 4 17): ";
cin >> year >> month >> day;
// 确保输入的是合法的整数
if (cin.fail()) {
cerr << "Invalid input!" << endl;
return 1;
}
// 计算并输出结果
int result = calculateDay(day, month, year);
cout << "该日期是当年的第" << result << "天." << endl;
return 0;
}
```
当你运行这个程序时,它会提示用户输入年月日,然后计算出所给日期是当年的第几天。注意,这个代码假定用户输入的都是有效数值。
阅读全文