C语言实现:输入年月日计算该日在本年是第几天,兼顾闰年判断!
下面是一个用C语言编写的程序,它定义了一个包含年、月、日的结构体变量,并根据输入的年、月、日计算该日期在当年中是第几天。程序考虑了闰年的问题。 ```c #include <stdio.h> // 定义结构体 typedef struct { int year; int month; int day; } Date; // 判断是否为闰年 int isLeapYear(int year) { if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) { return 1; } return 0; } // 计算某天在当年中是第几天 int dayOfYear(Date date) { int daysInMonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int dayCount = 0; // 如果是闰年且月份大于2,则2月有29天 if (isLeapYear(date.year)) { daysInMonth[1] = 29; } // 累加之前各月的天数 for (int i = 0; i < date.month - 1; i++) { dayCount += daysInMonth[i]; } // 加上当前月的天数 dayCount += date.day; return dayCount; } int main() { Date date; printf("请输入年、月、日(格式:yyyy mm dd):"); scanf("%d%d%d", &date.year, &date.month, &date.day); int result = dayOfYear(date); printf("%d\n", result); return 0; } ``` 程序解释: 1. 结构体定义: - 使用`typedef struct`定义了一个名为`Date`的结构体,包含年、月、日三个整型成员。 2. 闰年判断函数: - `isLeapYear`函数用于判断给定的年份是否为闰年。 3. 计算天数函数: - `dayOfYear`函数根据输入的日期计算该日期在当年中是第几天。 - 使用一个数组`daysInMonth`存储每个月的天数,默认2月为28天。 - 如果是闰年,则将2月的天数修改为29天。 - 通过循环累加之前各月的天数,再加上当前月的天数,得到总天数。 4. 主函数: - 从标准输入读取年、月、日。 - 调用`dayOfYear`函数计算天数并输出结果。 输入输出示例: - 输入:`2024 3 1` - 输出:`61` 这个程序正确考虑了闰年的情况,并可以处理各种日期的输入。 ######[AI写代码神器 | 698点数解答 | 2024-10-30 18:43:19]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)380
- HTML与JS代码纠错:轻松获取含星期的本地时间(字节豆包 | 284点数解答 | 2024-08-06 13:24:39)299
- 去掉代码备注:计算 f(a) + f(b) + f(c) 的简洁代码实现(字节豆包 | 150点数解答 | 2026-03-14 20:04:24)18
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)350
- Python 实现移位与仿射密码:精准加密解密及关键逻辑解析(字节豆包 | 798点数解答 | 2024-12-18 15:55:47)280
- C++ 实现:快速判断正整数是否为“超级整数”(字节豆包 | 239点数解答 | 2025-11-10 18:52:28)110
- C++实现:判断正整数是否为“超级整数”(字节豆包 | 242点数解答 | 2025-11-10 20:27:49)157
- C++ 代码实现自定义运算 x@y = x² + y² - xy 及 x@(x+y) 计算(DeepSeek | 215点数解答 | 2025-12-13 15:08:14)98
- C++ 实现根据输入正整数奇偶性计算偶数和或约数和(字节豆包 | 838点数解答 | 2026-02-28 20:23:59)56
- C++ 实现:判断两正整数乘积能否被 5 整除(字节豆包 | 119点数解答 | 2026-01-23 19:48:50)56
- Python 实现:判断两正整数乘积能否被 5 整除(字节豆包 | 86点数解答 | 2026-01-23 19:49:28)41
- JS 代码:判断“red”改值为“green”并弹窗显示结果( | 176点数解答 | 2024-05-20 21:33:04)432