c语言万年历
时间: 2023-06-21 10:07:06 浏览: 91
以下是一个基于 C 语言的简单万年历程序,可以根据用户输入的年份和月份输出该月的日历:
```
#include <stdio.h>
int main()
{
int year, month, days, week, i, j;
printf("请输入年份和月份(格式:YYYY MM):");
scanf("%d %d", &year, &month);
// 计算该月的天数
if (month == 2) {
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
days = 29;
else
days = 28;
}
else if (month == 4 || month == 6 || month == 9 || month == 11) {
days = 30;
}
else {
days = 31;
}
// 计算该月第一天是星期几
week = 1;
for (i = 1; i < year; i++) {
if ((i % 4 == 0 && i % 100 != 0) || (i % 400 == 0)) {
week += 366 % 7;
}
else {
week += 365 % 7;
}
}
for (j = 1; j < month; j++) {
if (j == 2) {
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
week += 29 % 7;
else
week += 28 % 7;
}
else if (j == 4 || j == 6 || j == 9 || j == 11) {
week += 30 % 7;
}
else {
week += 31 % 7;
}
}
week %= 7;
// 输出日历
printf("\n=====================\n");
printf(" %d年%d月\n", year, month);
printf("=====================\n");
printf("日 一 二 三 四 五 六\n");
for (i = 0; i < week; i++) {
printf(" ");
}
for (i = 1; i <= days; i++) {
printf("%2d ", i);
if ((i + week) % 7 == 0) {
printf("\n");
}
}
return 0;
}
```
该程序通过输入年份和月份来计算该月的天数和第一天是星期几,然后输出日历。其中,通过循环计算每一年和每一月的天数来确定第一天是星期几,使用了 % 运算符来处理循环。
注意,该程序只是一个简单的万年历实现,可能存在一些计算上的偏差,但可以满足日常使用。
阅读全文