输入年月日计算某年某月某日是一年的第几天 switch case
时间: 2024-12-17 16:19:14 浏览: 3
口诀 计算年月日 程序源代码
当你需要根据给定的年、月和日来计算一年中的第几天时,可以使用`switch-case`结构结合日期相关的逻辑。以下是一个简单的C++示例,它假设输入的是有效的日期(即不大于12月31日):
```cpp
#include <iostream>
int daysInMonth(int month, int year) {
// 检查月份是否有效
if (month < 1 || month > 12) {
std::cout << "Invalid month. Please enter a number between 1 and 12." << std::endl;
return -1; // 或者抛异常
}
// 闰年的判断
bool isLeapYear = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: // 这些都是31天
return 31 + (isLeapYear ? 1 : 0);
case 4:
case 6:
case 9:
case 11: // 这些都是30天
return 30 + (isLeapYear ? 1 : 0);
case 2: // 二月处理特殊情况
return isLeapYear ? 29 : 28;
}
}
int main() {
int year, month, day;
std::cout << "Enter the year, month (1-12), and day: ";
std::cin >> year >> month >> day;
int total_days = daysInMonth(month, year) + day - 1; // 减去1是因为第一天是0号
std::cout << "The date is the " << total_days << "th day of the year." << std::endl;
return 0;
}
```
这个程序首先检查月份的有效性,然后根据月份类型计算总天数。需要注意的是,这里假设每个月的天数已经固定,没有考虑到平年和闰年的区别。
阅读全文