全网最详细万年历(小白也能看得懂)

#include<stdio.h>//导入库函数 
int year(int y){//定义函数year,并定义变量y 
    if((y%4==0)&&(y%100!=0)||y%400==0){//判断y模4等于0,y模100不等于0,除非y模400也等于0 
        return 366;//就是闰年 
    }else{//否则 
        return 365;//就是平年 
    }
}
int main(){//定义main函数 
    int y;//定义变量y 
    int i,j,sum=0;//定义i,j,sum(总数)初始值为0 
    int day,week;//定义day(天)再定义week(周) 
    int month[12]={31,28,31,30,31,30,31,31,30,31,30,31};//定义一年12个月,天数分别是31 28 31 30 31 30....... 
    printf("请输入年份:\n");//打印:请输入年份这五个字并换行 
    scanf("%d",&y);//输入整数,并获取y的内存地址 
    if(year(y)==366)//判断函数year结果是不是闰年 
    month[1]=29;//二月为29天 
    for(i=1990;i<y;i++)//函数year(365)加上sum并赋值给sum 
    sum+=year(i);//函数year(365)加上sum并赋值给sum 
    week=(sum+1)%7;//sum+1(366)模7并赋值给week 
    printf("%d年日历如下:\n",y);//打印%d年日历如下并换行,%d是变量y的值 
    for(i=0;i<12;i++){//一年12月,所以循环12次 
    printf("           %d月\n",i+1);//输出%d并换行,%d是输出i+1 
    printf("日  一  二  三  四  五  六\n");//打印 日  一  二  三  四  五  六 并换行 
    day=1;//将day的值设置为1,也是一年的第一天的意思 
    for(j=0;j<week;j++)//循环变量j从0开始,一直执行,直到j的值小于week的值,每次循环j的值都增加一 
    printf(" ");//每输入一个星期空一格 
    while(day<=month[i]){//判断day的值大于等于month的随机一个元素(i) 
    printf("%4d",day);//%4d输出宽度为4个字符,%d是算出的day的值 
    day++;//对变量day做增加操作 
    week=(week+1)%7;//week模7赋值给week
    if(week%7==0)//判断week模7;余数是不是0 
    printf(" \n");//换行
    }
    printf("\n");//换行(格式美观)
    printf("\n");//换行(格式美观)
}
}

点赞关注,多多支持,更新快快!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值