输入某年某月某日,判断改日是概念的第几天,用C语言
时间: 2024-10-06 20:03:10 浏览: 31
在C语言中,要计算给定日期是一年的第几天,可以使用蔡勒公式(Zeller's congruence)。这是一种古老的算法,用于快速计算公历中的实际日期。以下是一个简单的函数实现:
```c
#include <stdio.h>
int day_of_year(int year, int month, int day) {
if (month < 3) {
// 如果月份小于3,那么这是前一年的剩余天数
month += 12;
year--;
}
int century = year / 100;
int year_of_century = year % 100;
int day_of_week = (day + (13 * (month + 1) / 5) + year_of_century + (year_of_century / 4) - (century / 4) + (5 * century)) % 7;
return day + ((day_of_week + 4) % 7); // 加上额外的一周偏移,因为蔡勒公式得到的是星期数,不是实际的天数
}
int main() {
int year, month, day;
printf("请输入年、月、日(格式如:2023 02 28): ");
scanf("%d %d %d", &year, &month, &day);
int date = day_of_year(year, month, day);
printf("该日期是一年的第%d天。\n", date);
阅读全文