输入年月日,用程序计算该日期是这一年的第几天。c语言代码
时间: 2024-10-10 19:03:13 浏览: 73
在C语言中,你可以通过计算从年初到给定日期之间的天数来确定某一天是一年的第几天。这里是一个简单的示例代码,假设你是从1月1日开始计数的:
```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;
case 2:
// 考虑闰年的情况
if (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)) {
return 29;
} else {
return 28;
}
default:
printf("Invalid month number\n");
return -1; // 如果月份无效,返回错误值
}
}
int main() {
int day, month, year;
printf("Enter the date in format (day month year): ");
scanf("%d %d %d", &day, &month, &year);
// 检查输入是否有效
if (day > 31 || month > 12 || month == 2 && !is_leap_year(year)) {
printf("Invalid date entered.\n");
return 1;
}
int total_days = day; // 初始算上前面的天数
for (int i = 1; i < month; ++i) {
total_days += days_in_month(i, year);
}
printf("The given date is the %dth day of %d.\n", total_days, year);
return 0;
}
// 辅助函数判断是否为闰年
bool is_leap_year(int year) {
return (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
}
阅读全文