#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main()
{
int year,month,day=1,i,j,d,data,e;
char h;
printf("/n/n/t * 显示日历 * /n");
printf("/n/t-----------------------/n");
printf("/t请输入年份/t:");
scanf("%d",&year);
printf("/t-----------------------/n");
printf("/t请输入月份/t:");
scanf("%d",&month);
printf("/t-----------------------/n");
int Daycount=0;
int count=0,count1=0;
for(i=1984;i<year;i++)//公元年数如能被4整除,而不能被100整除,则是闰年;公元年数能被400整除也是闰年
{
if((i%4==0&&i%100!=0)||(i%400==0))
count++;
else
count1++;
}
Daycount=count*366+count1*365;
if((year%4==0&&year%100!=0)||(year%400==0))
d=29;
else
d=28;
switch(month)
{
case 1:
day=day;
break;
case 2:
day+=31;
break;
case 3:
day+=31+d;
break;
case 4:
day+=31+d+31;
break;
case 5:
day+=31+d+31+30;
break;
case 6:
day+=31+d+31+30+31;
break;
case 7:
day+=31*3+d+30*2;
break;
case 8:
day+=31*4+d+30*2;
break;
case 9:
day+=31*5+d+30*2;
break;
case 10:
day+=31*5+d+30*3;
break;
case 11:
day+=31*6+d+30*3;
break;
case 12:
day+=31*6+d+30*4;
break;
}
system("cls");
printf("/n/t/t显示%d的日历/n",month);
int Month1[12][2]={1,31,2,28,3,31,4,30,5,31,6,30,7,31,8,31,9,30,10,31,11,30,12,30};
int Month[12][2]={1,31,2,29,3,31,4,30,5,31,6,30,7,31,8,31,9,30,10,31,11,30,12,30};
for(i=0;i<12;i++)
{
if((year%4==0&&year%100!=0)||(year%400==0))
{
if(month==Month[i][0])
{
data=Month[i][1];
break;
}
else
continue;
}
else
{
if(month==Month1[i][0])
{
data=Month1[i][1];
break;
}
else
continue;
}
}
printf("/n/t--------------------------------------------------------/n");
e=(Daycount+day)%7;
printf("/t星期日/t星期一/t星期二/t星期三/t星期四/t星期五/t星期六/n");
for(i=0;i<e;i++)
printf(" ");
int k=e-1;
for(j=1;j<=data;j++)
{
printf("/t%4d",j);
k++;
if(k%7==0)
printf("/n");
}
printf("/n/t--------------------------------------------------------/n");
puts("/n");
return 0;
}