用c语言写:输入一个日期,输出该日期是本年的第几天。
时间: 2024-10-11 19:15:14 浏览: 37
task_C语言_推测天数_
在C语言中,我们可以使用标准库中的`time.h`头文件来获取当前时间并计算特定日期距年初的天数。以下是一个简单的示例:
```c
#include <stdio.h>
#include <time.h>
int days_in_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;
default: // February (accounting for leap years)
if (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)) { // Leap year
return 29;
} else {
return 28;
}
}
}
int day_of_year(int day, int month, int year) {
int total_days = 0;
for (int i = 1; i < month; ++i) {
total_days += days_in_month(i, year);
}
total_days += day;
return total_days;
}
int main() {
int day, month, year;
printf("请输入日期(格式:DD MM YYYY): ");
scanf("%d %d %d", &day, &month, &year);
// 检查输入是否有效
if(month > 12 || day > days_in_month(month, year) || year < 1) {
printf("无效日期。\n");
return 1;
}
int current_day = day_of_year(day, month, year);
printf("该日期是本年的第%d天.\n", current_day);
return 0;
}
```
在这个程序中,我们首先定义了函数`days_in_month()`来获取指定月份的天数,然后在`day_of_year()`函数中累加每个月的天数,最后加上所给日期,得到结果。
阅读全文