编写c语言程序实现如下功能: 输入某年某月某日,判断这一天是这一年的第几天?
时间: 2024-11-30 11:17:06 浏览: 93
在C语言中,我们可以编写一个程序来计算给定日期是一年中的第几天。这里我们使用一个常见的算法,称为蔡勒公式(Zeller's congruence),它可以根据给定的年份、月份和日期来计算日期所在的天数。这个公式适用于非闰年,并且忽略二月29日的情况。
```c
#include <stdio.h>
int day_of_year(int year, int month, int day) {
if (month <= 2) {
// 如果是1月或2月(公历中的前两个月),需要将月份加1并减去12,因为那时还没到当年的第一天
month += 12;
year--;
}
int days = (day + (13 * (month + 1) / 5) + year + (year / 4) - (year / 100) + (year / 400)) % 7;
// 计算实际的天数
return (day + ((26*(month+1))/10) + days) % 7;
}
int main() {
int year, month, day;
printf("请输入年份、月份和日期(格式如2023 02 28): ");
scanf("%d %d %d", &year, &month, &day);
int day_of_month = day_of_year(year, month, day);
printf("给定日期 %d/%d/%d 是 %d 年的第 %d 天.\n", month, day, year, year, day_of_month + 1); // 加1是因为从1开始计数
return 0;
}
```
阅读全文
相关推荐


















