酷代码 AI
菜单
服务商
DeepSeek字节豆包讯飞星火
更多选项

C++ 实现日期结构体:精准计算指定日期为该年第几天并处理非法输入

```cpp #include <iostream> struct Date { int year; int month; int day; }; // 计算给定日期是该年的第几天 int daysInYear(Date date) { int daysInMonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; // 判断是否为闰年 if ((date.year % 4 == 0 && date.year % 100!= 0) || date.year % 400 == 0) { daysInMonth[1] = 29; } int totalDays = 0; for (int i = 0; i < date.month - 1; i++) { totalDays += daysInMonth[i]; } totalDays += date.day; // 检查日期是否合法 if (date.month < 1 || date.month > 12 || date.day < 1 || date.day > daysInMonth[date.month - 1]) { return 0; } return totalDays; } int main() { Date date; std::cout << "请输入年: "; std::cin >> date.year; std::cout << "请输入月: "; std::cin >> date.month; std::cout << "请输入日: "; std::cin >> date.day; int days = daysInYear(date); std::cout << "该日期是该年的第 " << days << " 天" << std::endl; return 0; } ``` 额外需要注意的逻辑点: 1. 处理闰年的判断要准确,包括能被 4 整除但不能被 100 整除,或者能被 400 整除的年份是闰年。 2. 输入数据的合法性检查要全面,包括月份和日期的范围。 3. 注意代码的可读性和可维护性,函数和变量的命名要清晰易懂。 ######[AI写代码神器 | 494点数解答 | 2024-12-08 15:44:00]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]