c++输入x和y,输出x年y月有多少天,需要考虑闰年
时间: 2024-09-15 10:12:20 浏览: 94
在C++中,计算给定年份和月份的天数需要考虑到闰年的规则。闰年是指能被4整除的年份,但是如果这个年份可以被100整除,则它不是闰年;除非它同时也能被400整除,此时仍然是闰年。对于每个月份,有不同的天数规定:
- 一月和二月一般有31天
- 三月、五月、七月、八月、十月和十二月各有31天
- 四月、六月、九月和十一月各有30天
对于二月,如果是闰年,就有29天,否则是28天。
你可以编写如下的函数来实现这个功能:
```cpp
#include <iostream>
int daysInMonth(int year, int month) {
switch (month) {
case 1: // January
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: // 31 days
return 31;
case 4: // April
case 6:
case 9:
case 11: // 30 days
return 30;
case 2: { // February
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
return 29;
else
return 28;
}
default:
throw std::invalid_argument("Invalid month");
}
}
int main() {
int x, y;
std::cout << "Enter the year and month: ";
std::cin >> x >> y;
try {
int total_days = daysInMonth(x, y);
std::cout << "There are " << total_days << " days in " << x << " year and " << y << " month.\n";
} catch (const std::exception& e) {
std::cerr << "Error: " << e.what() << '\n';
}
return 0;
}
```
阅读全文