万年历


同学让我做个万年历

#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);

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值