C语言实现打印日历的功能,输入年月,可以打印日历
话不多说,上代码:
#include <stdio.h>
#include <stdlib.h>
int isRn(int year)
{
return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
}
int main(void)
{
int year,month;
int i;
printf("请输入年/月:");
scanf("%d%d",&year,&month);
//1.计算指定年月有多少天
int dayCount;
//计算指定月份1号是星期几
int total = 0;
for (i = 1900; i < year; i++)
{
total += isRn(i)?366:365;
}
for (i = 1; i <= month; i++)
{
dayCount=31;
switch (i)
{
case 4:
case 6:
case 9:
case 11:
dayCount = 30;
break;
case 2:
dayCount = isRn(year)?29:28;
}
if (i < month)
{
total += dayCount;
}
}
printf("total=%d\n",dayCount);
printf("total1=%d\n",total);
int blanks = (total+1) % 7;//(total%7+1);
//3.打印日历
printf("\n=====================%d年%d月=====================\n",year,month);
printf("Sun\tMon\tTue\tWed\tThu\tFri\tSat\t\n");
//4.打印空格
for (i = 0; i < blanks; i++)
{
printf("\t");
}
//5.打印日期
for (i = 1; i <= dayCount; i++)
{
printf("%d\t",i);
if ((i + blanks) % 7 == 0)
{
printf("\n");
}
}
return EXIT_SUCCESS;
}
运行效果如图:
创作不易,点个赞吧。