、编程实现日历的输出,假如知道了某月 1日是星期几该月有多少天,就可以借助数组输出该月的日历。比如某个月份的1号是星期四,该月有30天。请编程C语言实现。
时间: 2024-05-15 09:19:03 浏览: 132
好的,下面是C语言实现代码:
```
#include <stdio.h>
int main()
{
int day, month, year, daysInMonth, weekDay = 0, startingDay;
printf("请输入日期(格式: yyyy-mm-dd): ");
scanf("%d-%d-%d", &year, &month, &day);
int months[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
char *weekDays[7] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
// 判断闰年
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
{
months[1] = 29;
}
// 计算该月天数和该月1号是星期几
daysInMonth = months[month - 1];
startingDay = weekDay;
for(int i = 1; i < month; i++)
{
startingDay += months[i - 1];
}
startingDay %= 7;
// 输出日历表头
printf("\n日\t一\t二\t三\t四\t五\t六\n");
// 输出该月日历
for(int i = 0; i < startingDay; i++)
{
printf("\t");
}
for(int i = 1; i <= daysInMonth; i++)
{
printf("%d\t", i);
if(++weekDay > 6)
{
weekDay = 0;
printf("\n");
}
}
printf("\n");
return 0;
}
```
当你输入日期后,程序会自动计算出该月的天数和该月1号是星期几,然后输出该月的日历表格。具体步骤是:
1. 首先根据年份判断是否为闰年,如果是则将2月的天数更新为29天。
2. 然后利用一个数组存储每个月的天数,以及一个字符串数组存储星期几的名称。
3. 计算该月天数和该月1号是星期几:将每个月的天数相加,得到1月1日到该月1日的天数,然后再用这个天数除以7并取余即可得到该月1号的星期几。
4. 输出日历表头:日 一 二 三 四 五 六 。
5. 输出该月的日历表格:首先先输出1号前的空格表示前面几天没有日历,然后从1号开始循环输出每一天,每输出一天就判断一下星期几,如果是周六则换行并开始下一行的输出。
阅读全文
相关推荐















