C语言实现万年历具体代码
时间: 2024-03-26 11:39:53 浏览: 56
以下是一个简单的 C 语言程序,用于实现万年历。它可以输入年份和月份,然后输出该月的日历。
```
#include <stdio.h>
int main()
{
int year, month, day, week, i, j;
int days[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
char *weekdays[7] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
printf("Enter the year: ");
scanf("%d", &year);
printf("Enter the month: ");
scanf("%d", &month);
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
days[1] = 29;
day = 1;
week = 0;
for (i = 1900; i < year; i++) {
if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0)
week = (week + 366) % 7;
else
week = (week + 365) % 7;
}
for (i = 0; i < month - 1; i++) {
week = (week + days[i]) % 7;
}
printf("\n %d/%d\n", year, month);
for (i = 0; i < 7; i++) {
printf("%s ", weekdays[i]);
}
printf("\n");
for (i = 0; i < week; i++) {
printf(" ");
}
for (i = week, j = 1; j <= days[month - 1]; i++, j++) {
printf("%2d ", j);
if (i % 7 == 6) {
printf("\n");
}
}
printf("\n");
return 0;
}
```
在这个程序中,我们使用了一个数组来存储每个月的天数,并使用一个字符串数组来存储星期几的名称。程序首先要求用户输入年份和月份,然后根据这些输入计算出该月的日历。我们使用了一个循环来计算从 1900 年到用户输入的年份之前的所有年份的天数总和,然后使用另一个循环来计算该月的第一天是星期几。最后,我们使用两个嵌套的循环来打印出整个月的日历。
阅读全文