用c程序简单实现:输入年月日,输出这一天是这一年的第多少天
时间: 2024-09-24 09:06:35 浏览: 124
在C语言中,可以使用一个简单的算法来实现这个功能,例如闰年判断和累加天数。这里是一个简化的版本,假设用户只输入非负整数:
```c
#include <stdio.h>
int is_leap_year(int year) {
return (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
}
int days_in_month(int month, int year) {
switch(month) {
case 1: return 31;
case 2: return is_leap_year(year) ? 29 : 28;
case 3: return 31;
case 4: return 30;
case 5: return 31;
case 6: return 30;
case 7: return 31;
case 8: return 31;
case 9: return 30;
case 10: return 31;
case 11: return 30;
case 12: return 31;
default: return 0; // 这里处理非法月份,实际上不会遇到,仅为示例
}
}
int main() {
int day, month, year;
printf("请输入年月日(格式:YYYY-MM-DD): ");
scanf("%d-%d-%d", &year, &month, &day);
if (month <= 0 || day <= 0 || month > 12 || day > days_in_month(month, year)) {
printf("无效日期!\n");
return 1;
}
int total_days = 0;
for (int i = 1; i < month; i++) {
total_days += days_in_month(i, year);
}
total_days += day;
printf("这一天是这一年的第%d天。\n", total_days);
return 0;
}
```
阅读全文