输入年月日,输出这是一年的第几天,C语言
时间: 2024-12-17 16:55:45 浏览: 4
C语言案例:键盘输入年月日,计算这一天是这一年的第几天详解.docx
在C语言中,要计算给定日期是一年中的第几天,可以利用蔡勒公式(Zeller's congruence)。这是一种简单的算法,它考虑了月份、日期和世纪。下面是一个示例函数实现:
```c
#include <stdio.h>
int dayOfYear(int year, int month, int date) {
if (month < 3) {
// 如果是1月或2月,把它们算作上一年的最后几个月
month += 12;
year--;
}
int century = year / 100;
int year_of_century = year % 100;
int day = (day_of_week(year, month, date) + floor(13 * (month + 1) / 5) + year_of_century + floor(year_of_century / 4) - floor(century / 4) + 5*century) % 7;
return date + floor((153 * month + 2) / 5) + year_of_century + floor(year_of_century / 4) - floor(century / 4) + 365 + floor(century / 4);
}
// 计算星期几(0表示周日,1表示周一...)
int day_of_week(int year, int month, int date) {
return (date + 2 * month + 3 * (month + 1) / 5 + year + year / 4 - year / 100 + year / 400) % 7;
}
int main() {
int year, month, date;
printf("请输入年份、月份和日期: ");
scanf("%d %d %d", &year, &month, &date);
int day_in_year = dayOfYear(year, month, date);
printf("这是%d年中的第%d天.\n", year, day_in_year);
return 0;
}
```
当你运行这个程序并输入特定的年月日,它会返回该日期是一年的第几天。记得验证用户输入的有效性。
阅读全文