#include<stdio.h>
const int mon[2][12]={31,28,31,30,31,30,31,31,30,31,30,31,
31,29,31,30,31,30,31,31,30,31,30,31};
//记录平年闰年的每个月份的天数
int Is_Leap(int year)//判断该年是闰年还是平年
{
return (year%400==0)||(year%4==0 && year%100!=0);
}
void ShowCalendar(int year,int month)
{
int i=0,j=0,t=0,n=0;
t = year-1;
t = (1+t+t/4-t/100+t/400)%7; //t为当前年份一月一号的星期
for(i=1;i<month;i++)
{
t += mon[n][i-1];
t %= 7;
}
if(t==0)
t = 7; //计算后的t为当前年份当前月份一号的星期
n = Is_Leap(year);
printf("\n%d年%d月↓\n",year,month);
printf("------------------------------\n");
printf(" 一 二 三 四 五 六 日\n");
for(j=1;j<t;j++)
printf(" ");
for(j=1;j<=mon[n][month-1];j++)
{
printf("%4d",j);
t++;
if(t==8)
{
printf("\n");
t = 1;
}
}
if(t!=1)
printf("\n");
printf("------------------------------\n");
printf("\n");
}
int main()
{
int year,month;
printf("请输入年月:(xxxx xx)\n");
scanf("%d %d",&year,&month);
ShowCalendar(year,month);
return 0;
}
日历
最新推荐文章于 2024-12-23 20:06:53 发布