這是篇菜鳥級的程序,發表後還希望大家多多關照,有不足之處希望大鳥們多多指教。
/*日歷—— 輸入1980年到2080年之間的某年某月,輸出其相連的三個月,並且和星期對上*/
#define N 1980
main()
{int s=-1,a=1,i,j,x,p,y=N,z,n,m,k=1,t[1200];
printf("
please input a year number and month number:");
scanf("%d.%d",&p,&m);
for(z=m-1;z<=m+1;z++)
{printf("
SU MO TU WE TH FR SA
" );
for(i=0;i<70;i++)printf("=");
printf("
%d.%d",(z>0?(z>12?(p+1):p):(p-1)),(z>0?(z>12?z%12:z):12));
x=fun(p,z);
t[1]=2;
while(a<1200)
{t[a+1]=(fun((k%12==0?(y++):y),(k%12==0?12:k%12))+t[a])%7;
a++; k++;}
for(n=0;n<t[(p-N)*12+z];n++)
{printf(" ");}
for(j=1;j<=x;j++)
{printf(" %d",j);
if((j+t[(p-N)*12+z])%7==0)
printf("
"); }
}
}
int fun(int y,int m)
{
if(m==4m==6m==9m==11)
return 30;
else if(m==2)
{if(y%4!=0)
return 28;
if(y%4==0)
return 29; }
else
return 31;
}