6、输入年、月、日,输出该天是该年的第几天。用C语言完成
时间: 2024-10-16 19:12:08 浏览: 14
在C语言中,计算给定日期是一年中的第几天,需要考虑闰年的处理,因为二月份有28天或29天。下面是一个简单的函数,它会接受年份、月份和日期作为参数,并返回相应的日期序号:
```c
#include <stdio.h>
#include <time.h>
int is_leap_year(int year) {
if (year % 4 == 0) {
if (year % 100 == 0)
return year % 400 == 0;
else
return true;
}
return false;
}
int day_of_month(int month, int year) {
switch(month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
case 4:
case 6:
case 9:
case 11:
return 30;
case 2:
if (is_leap_year(year))
return 29;
else
return 28;
default:
// 这里应该是错误处理,因为月份不可能超过12
return -1; // 或者抛出异常
}
}
int day_of_year(int year, int month, int date) {
int total_days = 0;
for (int i = 1; i < month; i++) {
total_days += day_of_month(i, year);
}
total_days += date - 1; // 减去前一个月的最后一天
return total_days;
}
int main() {
int year, month, day;
printf("请输入年份、月份和日期(例如:2023 2 15): ");
scanf("%d %d %d", &year, &month, &day);
int result = day_of_year(year, month, day);
printf("该日期是%d年的第%d天.\n", year, result);
return 0;
}
```
阅读全文