给定年份year,月份month,编程计算当前month月有几天? 使用switch-case结构实现
时间: 2024-10-22 14:18:36 浏览: 19
当需要根据给定的年份和月份计算某个月份有多少天时,可以使用switch-case结构结合闰年规则来实现。以下是使用C++的一个示例:
```cpp
#include <iostream>
int daysInMonth(int year, int month) {
switch (month) {
case 1: // January
return 31;
case 2: // February
if (is_leap_year(year)) { // 判断是否为闰年
return 29;
} else {
return 28;
}
case 3: // March
return 31;
case 4: // April
return 30;
case 5: // May
return 31;
case 6: // June
return 30;
case 7: // July
return 31;
case 8: // August
return 31;
case 9: // September
return 30;
case 10: // October
return 31;
case 11: // November
return 30;
case 12: // December
return 31;
default: // 如果输入的月份非法
std::cout << "Invalid month!";
return -1; // 返回错误值
}
}
bool is_leap_year(int year) {
if (year % 4 != 0)
return false;
else if (year % 100 != 0)
return true;
else if (year % 400 != 0)
return false;
else
return true;
}
int main() {
int year = 2023;
int month = 2; // 例如查询2023年的二月天数
int days = daysInMonth(year, month);
if (days != -1) {
std::cout << "The month of " << month << " in " << year << " has " << days << " days." << std::endl;
}
return 0;
}
```
在这个例子中,`daysInMonth`函数会根据传入的`year`和`month`返回相应月份的天数。如果是闰年且月份为2月,则2月有29天;其他月份则按照标准的日数计算。
阅读全文