已知1900年1月1日是星期一,写一个万年历

#include <stdio.h>

int main()

{

    int year=0,month=0,weekday=0,sum=0;

    printf("请输入年和月:\n");

    scanf("%d %d",&year,&month);

    for(int y=1900;y<year;y++){

        if((y%4==0 && y%100!=0)||y%400==0){

            sum+=366;

        }else{

            sum+=365;

        }

    }

    for(int m=1;m<month;m++){

        if(m==2){

            if((year%4==0 && year%100!=0)||year%400==0){

                sum+=29;

            }else{

                sum+=28;

            }

        }else if(m==4||m==6||m==9||m==11){

            sum+=30;

        }else{

            sum+=31;

        }

    }

    sum+=1;

    weekday=sum%7;

    

    int count=0;

    if(month==2){

        if((year%4==0 && year%100!=0)||year%400==0){

            count=29;

        }else{

            count=28;

        }

    }else if(month==4||month==6||month==9||month==11){

        count=30;

    }else{

        count=31;

    }

    printf("\t\t\t\t\t\t\n");

    for(int i=1;i<=weekday;i++){

        printf("\t");

    }

    for(int k=1;k<=count;k++){

        if(sum%7==6){

            printf("%d\n",k);

        }else{

            printf("%d\t",k);

        }

        sum++;

    }

    printf("\n\n");

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值