用c语言编写万年历程序
时间: 2023-12-20 16:57:33 浏览: 24
以下是一个简单的用 C 语言编写的万年历程序,可以根据输入的年份和月份输出对应的日历:
```c
#include <stdio.h>
int main() {
int year, month, day, week;
int days_in_month[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
char *weekdays[] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
printf("Enter year: ");
scanf("%d", &year);
printf("Enter month: ");
scanf("%d", &month);
day = 1;
week = 0;
// check for leap year
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
days_in_month[2] = 29;
}
// calculate weekday of 1st day of month
for (int i = 1; i < month; i++) {
day += days_in_month[i];
}
week = (year + year / 4 - year / 100 + year / 400 + day) % 7;
// print calendar
printf("\n %d/%d\n", month, year);
printf("--------------------\n");
printf("Sun Mon Tue Wed Thu Fri Sat\n");
printf("--------------------\n");
for (int i = 0; i < week; i++) {
printf(" ");
}
for (int i = 1; i <= days_in_month[month]; i++) {
printf("%3d ", i);
if (++week > 6) {
week = 0;
printf("\n");
}
}
printf("\n");
return 0;
}
```
其中,我们首先输入年份和月份,然后判断该年是否为闰年,计算出该月的第一天是星期几,最后根据每个月的天数和第一天是星期几,输出对应的日历。