c语言实现万年历具体代码
时间: 2023-11-12 12:33:14 浏览: 77
以下是使用C语言实现万年历的代码:
```c
#include <stdio.h>
int main()
{
int year, month, day, days, i;
printf("请输入日期(格式:年-月-日):\n");
scanf("%d-%d-%d", &year, &month, &day);
// 计算该日期是该年的第几天
days = day;
int month_day[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
month_day[2] = 29; // 闰年2月有29天
}
for (i = 1; i < month; ++i) {
days += month_day[i];
}
// 计算该年1月1日是周几
int week_day = (year - 1) * 365 + (year - 1) / 4 - (year - 1) / 100 + (year - 1) / 400;
for (i = 1; i < month; ++i) {
week_day += month_day[i];
}
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
week_day++; // 闰年1月1日是周日,所以要加一天
}
week_day %= 7;
// 输出日历表头
printf("日\t一\t二\t三\t四\t五\t六\n");
// 输出日期
for (i = 0; i < week_day; ++i) {
printf("\t"); // 输出1号前的空格
}
for (i = 1; i <= month_day[month]; ++i) {
printf("%d\t", i);
if ((week_day + i) % 7 == 0) {
printf("\n"); // 每输出7个数字换行
}
}
printf("\n");
return 0;
}
```
该程序通过输入一个日期,计算该日期是该年的第几天,以及该年1月1日是周几,然后输出该月的日历表。
阅读全文