用c语言设计一个日历系统
时间: 2024-05-14 19:12:12 浏览: 126
基于c语言的日历系统
这是一个基础的日历系统,可以输入年份和月份,输出该月的日历。代码如下:
```
#include <stdio.h>
#include <stdlib.h>
int main()
{
int year, month, days, start_day;
int i, j, count;
printf("请输入年份:");
scanf("%d", &year);
printf("请输入月份:");
scanf("%d", &month);
if (month < 1 || month > 12) {
printf("月份输入有误!\n");
return -1;
}
switch (month) {
case 2:
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
days = 29;
} else {
days = 28;
}
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
default:
days = 31;
break;
}
printf(" 日 一 二 三 四 五 六\n");
for (i = 1; i <= days; i++) {
if (i == 1) {
start_day = (year - 1) * 365 + (year - 1) / 4 - (year - 1) / 100 + (year - 1) / 400;
for (j = 1; j < month; j++) {
switch (j) {
case 2:
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
start_day += 29;
} else {
start_day += 28;
}
break;
case 4:
case 6:
case 9:
case 11:
start_day += 30;
break;
default:
start_day += 31;
break;
}
}
start_day = (start_day + 1) % 7;
}
for (count = 0; count < start_day; count++) {
printf(" ");
}
printf("%3d ", i);
start_day = (start_day + 1) % 7;
if (start_day == 0) {
printf("\n");
}
}
if (start_day != 0) {
printf("\n");
}
return 0;
}
```
需要注意的是,计算某年某月的第一天是星期几时,需要注意闰年的影响,因为闰年的2月份有29天。在计算该月的总天数时,也需要注意闰年和非闰年的区别。
阅读全文