匿名用户
1级
2008-12-14 回答
#include
#define X " Sun Mon Tue Wed Thu Fri Sat"
int isleap(int year)
{
if(year%4==0&&year%100||year%400==0)
return 1;
else
return 0;
}
void print(int n)
{
int i;
for(i=0;i
printf(" ");
}
int day(int year)
{
long a,b;
if(year<=2000)
{
a=2000-year;
b=6-(a+a/4-a/100+a/400)%7;
return b;
}
else
{
a=year-2000;
b=(a+1+(a-1)/4-(a-1)/100+(a-1)/400)%7+6;
return b%7;
}
}
void printcalendar(int year)
{
int i,j,k,m,n,f1,f2,d;
int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
printf("\nThe calendar of the year %d.\n\n",year);
d=day(year);
if(isleap(year)==1)
a[2]++;
for(i=1;i<=12;i+=2)
{
m=0; n=0; f1=0; f2=0;
switch(i)
{
case 1:printf(" Januray 1 ");break;
case 3:printf(" March 3 ");break;
case 5:printf(" May 5 ");break;
case 7:printf(" July 7 "); break;
case 9:printf(" September 9 ");break;
case 11:printf(" Nevember 11 ");break;
}
print(21);
switch(i+1)
{
case 2:printf(" February 2 "); break;
case 4:printf(" April 4 "); break;
case 6:printf(" June 6 "); break;
case 8:printf(" August 8 "); break;
case 10:printf(" October 10 "); break;
case 12:printf(" December 12"); break;
}
printf("\n");
printf(X);
print(6);
printf(X);
printf("\n");
for(j=0;j<6;j++)
{
if(j==0)
{
print(d*4);
for(k=0;k<7-d;k++)
{
printf("%4d",++m);
}
print(6);
d+=a[i]%7;
d%=7;
print(d*4);
for(k=0;k<7-d;k++)
{
printf("%4d",++n);
}
printf("\n");
}
else
{
for(k=0;k<7;k++)
{
if(m
{
printf("%4d",++m);
}
else
{
print(4);
}
if(m==a[i]) f1=1;
}
print(6);
for(k=0;k<7;k++)
{
if(n