c语言 求当年天数 分 请编写函数,根据所给日期计算是当年的第几天。
时间: 2024-05-05 16:20:07 浏览: 182
输入日期计算其对应这一年的第几天C语言
4星 · 用户满意度95%
可以使用以下的 C 语言函数实现:
```c
#include <stdio.h>
// 判断是否为闰年
int isLeap(int year) {
return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
}
// 计算当年天数
int getDayOfYear(int year, int month, int day) {
// 每个月的天数
int days[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
// 如果是闰年,2月份的天数为29天
if (isLeap(year)) {
days[1] = 29;
}
// 计算当年天数
int i, sum = 0;
for (i = 0; i < month - 1; i++) {
sum += days[i];
}
return sum + day;
}
int main() {
int year, month, day;
printf("请输入日期(格式为 yyyy mm dd):");
scanf("%d %d %d", &year, &month, &day);
printf("这一天是当年的第 %d 天。\n", getDayOfYear(year, month, day));
return 0;
}
```
该函数首先判断是否为闰年,然后根据每个月的天数计算当年天数。在主函数中,使用 `scanf` 函数读取输入的日期,然后调用 `getDayOfYear` 函数计算当年天数并输出结果。
阅读全文