用c程序写:输入某年某月某日,判断这一天是这一年的第几天?
时间: 2024-10-04 14:02:06 浏览: 91
Java练习题Question4.txt
在C语言中,我们可以编写一个函数来计算给定日期是一年中的第几天。这通常涉及到闰年的处理,因为二月有28天或29天。下面是一个简单的示例函数,它接受年份、月份和日子作为参数:
```c
#include <stdio.h>
#include <time.h>
int is_leap_year(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
int day_of_month(int month, int day, int year) {
switch(month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return day;
case 4:
case 6:
case 9:
case 11:
return 30;
default:
if(is_leap_year(year)) {
return 29;
} else {
return 28;
}
}
}
int main() {
int year, month, day;
printf("请输入年份、月份(1-12)和日子:");
scanf("%d %d %d", &year, &month, &day);
// 检查输入是否合法(1-12的月份)
if(month < 1 || month > 12) {
printf("错误:月份无效。");
return 1;
}
int total_days = 0;
for (int i = 1; i < month; i++) {
total_days += day_of_month(i, 1, year);
}
total_days += day;
printf("该日期是%ld年中的第%d天。\n", year, total_days);
return 0;
}
```
这个程序首先检查输入的合法性,然后通过循环累加前几个月的天数,最后加上当前月份的日子,得到总天数。
阅读全文