用C语言来写一个万年历
时间: 2023-12-08 22:04:52 浏览: 126
利用C语言写的万年历
好的,下面是一个简单的C语言代码,可以实现输入年份和月份,输出该月份的日历:
```c
#include<stdio.h>
int main()
{
int year, month, day, week, i, j;
printf("请输入年份:");
scanf("%d", &year);
printf("请输入月份:");
scanf("%d", &month);
day = 1;
week = 1;
// 计算当月第一天是星期几
for (i = 1; i < year; i++)
{
if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0)
day += 366;
else
day += 365;
}
for (i = 1; i < month; i++)
{
if (i == 4 || i == 6 || i == 9 || i == 11)
day += 30;
else if (i == 2)
{
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
day += 29;
else
day += 28;
}
else
day += 31;
}
week = day % 7;
printf("日 一 二 三 四 五 六\n");
for (i = 0; i < week; i++)
printf(" ");
if (month == 4 || month == 6 || month == 9 || month == 11)
j = 30;
else if (month == 2)
{
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
j = 29;
else
j = 28;
}
else
j = 31;
for (i = 1; i <= j; i++)
{
printf("%2d ", i);
if ((i + week) % 7 == 0)
printf("\n");
}
printf("\n");
return 0;
}
```
这个代码可以计算出输入年份和月份对应的日历,输出格式为:
```
日 一 二 三 四 五 六
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
```
如果是闰年的话,2月份有29天,否则为28天。4、6、9、11月份有30天,其他月份有31天。可以根据这些规律来计算当月的天数和第一天是星期几。
阅读全文