用c语言制作年历系统
时间: 2024-02-06 12:09:20 浏览: 59
下面提供一个简单的 C 语言程序,可以实现年历系统的基本功能,包括打印某年某月的日历以及判断某年是否是闰年等。
```c
#include <stdio.h>
// 判断某年是否为闰年
int isLeapYear(int year) {
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
return 1;
} else {
return 0;
}
}
// 计算某年某月的天数
int getDaysOfMonth(int year, int month) {
int days = 0;
switch(month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
case 2:
if (isLeapYear(year)) {
days = 29;
} else {
days = 28;
}
break;
}
return days;
}
// 打印某年某月的日历
void printCalendar(int year, int month) {
int days = getDaysOfMonth(year, month);
int weekday = 0;
int i, j;
printf("-----------------------------\n");
printf(" %d年%d月\n", year, month);
printf("-----------------------------\n");
printf(" 日 一 二 三 四 五 六\n");
weekday = 1; // 2021年1月1日是周五,所以默认从星期五开始
for (i = 1; i <= days; i++) {
if (i == 1) {
for (j = 1; j <= weekday; j++) {
printf(" ");
}
}
printf("%3d", i);
if ((weekday + i) % 7 == 0) {
printf("\n");
}
}
printf("\n\n");
}
int main() {
int year, month;
printf("请输入年份:");
scanf("%d", &year);
printf("请输入月份:");
scanf("%d", &month);
printCalendar(year, month);
return 0;
}
```
运行程序后,输入年份和月份,即可打印出对应的日历。例如:
```
请输入年份:2021
请输入月份:8
-----------------------------
2021年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
```
注意:此程序仅作为参考,可能存在一些细节问题需要根据实际情况进行调整。
阅读全文