#include
int weekday(int y,int m,int days)
{
int temp,i;
for(i=1;i<m;i++)
{
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
days+=31;
else if(i==2)
{
if(pryear(y)==1)
days+=29;
else
days+=28;
}
else
days+=30;
}
temp=y-1+(int)((y-1)/4)-(int)((y-1)/100)+(int)((y-1)/400)+days;
return temp%7;
}
int pryear(int y)
{
if((y%4==0&&y%100!=0)||(y%100==0&&y%400==0))
return 1;
else
return 0;
}
int main()
{
int y,m;
printf("输入年-月\n");
scanf("%d-%d",&y,&m);
printf(" %d年%d月\n",y,m);
printf("星期日 星期一 星期二 星期三 星期四 星期五 星期六\n");
int week;
week=weekday(y,m,1);
int i;
for(i=0;i<week;i++)
printf(" ");
int enddayofmonth;
if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)
enddayofmonth=31;
else if(m==2)
{
if(pryear(y)==1)
enddayofmonth=29;
else
enddayofmonth=28;
}
else
enddayofmonth=30;
int startdayofmonth=1;
while(startdayofmonth<=enddayofmonth)
{
printf("%3d",startdayofmonth);
startdayofmonth++;
if((startdayofmonth+week-1)%7==0)
printf("\n");
}
return 0;
}