C语言输出输入年月日是这一年的第几天。
时间: 2024-09-11 17:19:20 浏览: 71
C语言案例:键盘输入年月日,计算这一天是这一年的第几天详解.docx
在C语言中,要计算给定日期是一年中的第几天,可以使用蔡勒公式(Zeller's congruence),它是一个古老的算法,用于确定儒略日(Julian day number)。这是一个常见的编程练习,涉及到对闰年规则的理解以及模运算。以下是一个简单的示例:
```c
#include <stdio.h>
#include <time.h>
int zeller_congruence(int year, int month, int day) {
if (month < 3) { // 如果是1月或2月,调整年份和月份
year -= 1;
month += 12;
}
int q = day;
int m = month;
int k = year % 100; // 年份的最后两位数
int j = year / 100; // 去掉最后两位后的年份
int result = (q + ((13 * (m + 1)) / 5) + k + (k / 4) + (j / 4) - (2 * j));
if (j >= 1900) {
result -= (j / 100) * 5; // 纠正20世纪的额外天数
}
return result;
}
int main() {
int year, month, day;
printf("请输入年月日(格式:YYYY MM DD): ");
scanf("%d %d %d", &year, &month, &day);
int julian_day = zeller_congruence(year, month, day);
printf("该日期是一年中的第%d天.\n", julian_day);
return 0;
}
```
在这个程序中,`zeller_congruence`函数接受年、月、日作为参数,返回对应的儒略日。然后在`main`函数中获取用户输入并计算结果。
阅读全文