C语言:用结构体实现输入年月日计算该日是本年第几天(含闰年判断)
好的,下面是一个用C语言编写的程序,它定义了一个包含年、月、日的结构体,并计算输入日期在该年中的第几天。程序会考虑闰年的情况。 ```c #include <stdio.h> // 定义结构体 struct Date { int year; int month; int day; }; // 判断是否为闰年 int isLeapYear(int year) { if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) { return 1; } else { return 0; } } // 计算某一天在该年中的第几天 int dayOfYear(struct Date date) { // 每个月的天数 int daysInMonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; // 如果是闰年,2月有29天 if (isLeapYear(date.year)) { daysInMonth[1] = 29; } int dayCount = 0; for (int i = 0; i < date.month - 1; i++) { dayCount += daysInMonth[i]; } dayCount += date.day; return dayCount; } int main() { struct Date date; // 输入年、月、日 printf("请输入年、月、日(格式:年 月 日):"); scanf("%d %d %d", &date.year, &date.month, &date.day); // 计算并输出该日在本年中的第几天 int dayNumber = dayOfYear(date); printf("%d\n", dayNumber); return 0; } ``` 代码说明: 1. 结构体定义:定义了一个包含年、月、日的结构体 `Date`。 2. 判断闰年:函数 `isLeapYear` 用于判断给定的年份是否为闰年。 3. 计算第几天:函数 `dayOfYear` 计算输入日期在该年中的第几天。首先定义了一个数组 `daysInMonth` 来存储每个月的天数,如果是闰年,则将2月的天数改为29。然后通过累加前几个月的天数再加上当前月份的天数来得到结果。 4. 主函数:从用户输入获取年、月、日,调用 `dayOfYear` 函数计算并输出结果。 示例运行: 输入:`2024 3 1` 输出:`61` 这个程序可以正确处理闰年和非闰年的日期计算。 ######[AI写代码神器 | 616点数解答 | 2024-10-30 16:30:07]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)380
- HTML与JS代码纠错:轻松获取含星期的本地时间(字节豆包 | 284点数解答 | 2024-08-06 13:24:39)299
- 数据结构:揭示实体固有关系,助力信息管理与开发(GPT | 178点数解答 | 2024-10-20 14:06:34)209
- Java 实现将 List<Map<String, Integer>> 中 Map 的 Key 重新组装到新 List:代码解析与注意事项(字节豆包 | 587点数解答 | 2026-01-12 12:52:02)50
- 去掉代码备注:计算 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