同学让我做个万年历
#include<stdio.h>
#include<conio.h>
char da[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int day,month,year,s1,s2,a,day1,day12;
int main()
{
int sum(int y),i=1;
char *week[]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
int num(int y,int m,int d);
printf("please input year,month,day\n");
scanf("%d,%d,%d",&year,&month,&day);
if(((year%4)==0&&(year%100)!=0)||((year%400)==0))
da[1]++;
if(year>0&&month>0&&month<13&&day>0&&day<=da[month-1])
{
s1=sum(year);
s2=num(year,month,day);
a=(s1+s2)%7;
printf("%s\n",week[a]);
}
else printf("error\n");
day12=day1=a-day%7+8;
while(1)
{
printf
("\n*****************************************************************************\n");
printf(" Sunday Monday Tuesday Wednesday Thursday Friday Saturday\n");
for(i=0;i<(day12%7);i++)
printf(" ");
for(i=1;i<=da[month-1];i++)
if((i+day1)%7)
printf(" %2d ",i);
else
printf(" %2d \n",i);
printf
("\n*****************************************************************************\n");
if('a'==getch())//上个月
{
month--;
if(0>month)
if(month=12,year>0)
year--;
day12=day1=day1-da[month]%7+8;
printf("%d,%d,%d",year,month,day);
}
else if('s'==getch())//下个月
{
month++;
if(12<month)
if(month=1,year<99999)
year++;
day12=day1=day1-da[month-1]%7+8;
printf("%d,%d,%d",year,month,day);
}
else if('w'==getch())//上个年
{
year--;
if(((year%4)==0&&(year%100)!=0)||((year%400)==0))
day12=day1=day1-366%7+8;
else
day12=day1=day1-365%7+8;
printf("%d,%d,%d",year,month,day);
}
else if('z'==getch())//下个年
{
year++;
if(((year%4)==0&&(year%100)!=0)||((year%400)==0))
day12=day1=day1-366%7+8;
else
day12=day1=day1-365%7+8;
printf("%d,%d,%d",year,month,day);
}
}
return 0;
}
int sum(int y)
{
int x=0,i;
for(i=1;i<y;i++)
if(((i%4)==0&&(i%100)!=0)||((i%400)==0))
x+=2;
else
x+=1;
return x;
}
int num(int y,int m,int d)
{
int s=0,i;
for (i=0;i<m-1;i++)
s+=da[i];
s+=d;
return (s);
}