用C语言写一个加边框的万年历
时间: 2023-10-05 14:04:22 浏览: 89
好的,以下是用C语言写的加边框的万年历代码:
```c
#include <stdio.h>
int main() {
int year, month, days, i, j, k, n;
int xingqi; // 0-6分别表示周日到周六
printf("请输入年份:");
scanf("%d", &year);
printf("请输入月份:");
scanf("%d", &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;
}
// 计算当月一号是周几
xingqi = (year - 1) * 365 + (year - 1) / 4 - (year - 1) / 100 + (year - 1) / 400;
for (i = 1; i < month; i++) {
if (i == 2) {
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
xingqi += 29;
} else {
xingqi += 28;
}
} else if (i == 4 || i == 6 || i == 9 || i == 11) {
xingqi += 30;
} else {
xingqi += 31;
}
}
xingqi = (xingqi + 1) % 7;
// 输出日历
printf("日 一 二 三 四 五 六\n");
printf("--------------------\n");
for (i = 0; i < xingqi; i++) {
printf(" ");
}
for (j = 1; j <= days; j++) {
printf("%2d ", j);
if ((xingqi + j) % 7 == 0) {
printf("\n");
}
}
if ((xingqi + j - 1) % 7 != 0) {
for (k = 0; k < 7 - (xingqi + j - 1) % 7; k++) {
printf(" ");
}
printf("\n");
}
printf("--------------------\n");
return 0;
}
```
输出的日历会加上边框,如下所示:
```
请输入年份:2022
请输入月份:8
日 一 二 三 四 五 六
--------------------
1
2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
--------------------
```
希望能够帮助到你!
阅读全文