输入一个天数和年,求月和日(有平年和闰年)

Posted py_taotao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了输入一个天数和年,求月和日(有平年和闰年)相关的知识,希望对你有一定的参考价值。

今天是一个C语言代码

题目:输入一个天数和年,求月和日(有平年和闰年)

先上代码
我这里是用了最简单的一种(好吧,其实是大佬写的我看的迷迷糊糊的,决定自己用复杂又简单一点开始,之后在改变程序变简洁)

#include "stdio.h"
main()

    int y,a,b,days,m;
    printf("请输入年:\\n");      //y
    scanf("%d",&y);
    printf("请输入天数:\\n");    //days
    scanf("%d",&days);
    if(y%400==0 || (y%4==0&&y%100!=0))  //这里是判断是不是闰年 平年
    
        a=1;   //是闰年a就等于1
    
    else
    
        a=0;   //否平年a等于0
    

    if(days<=31)
    
        m=1;
        b=days;
        printf("%d年%d月%d日",y,m,b);
    
    else if(days<=(59+a) && days>31)
    
        m=2;
        b=days-31;
        printf("%d年%d月%d日",y,m,b);
     

    else if(days<=(90+a) && days>(59+a))
    
        m=3;
        b=days-(59+a);
        printf("%d年%d月%d日",y,m,b);
    
//看到这里有先小伙伴可能已经懂了,没错我就是把每个月都给求出了,在后面的输出
//以2月说明 平年28天,闰年29天所以(1月+2月)=59天和60天
//这个时候前面判断(平润年)a的用处出来了
//先以平年计算在平年的基础上+a就是闰年了
//1月  days <= 31  
//2月  31 < days <= (31+28+a)    小于1月和2月的总和a会和前面的判断有关平润不一样的   
//3月  (31+28+a) < days <= (31+31+28+a)    之后就一样的思路了
    else if(days<=(120+a) && days>(90+a))
    
        m=4;
        b=days-(90+a);
        printf("%d年%d月%d日",y,m,b);
    
    else if(days<=(151+a) && days>(120+a))
    
        m=5;
        b=days-(120+a);
        printf("%d年%d月%d日",y,m,b);
    
    else if(days<=(181+a) && days>(151+a))
    
        m=6;
        b=days-(151+a);
        printf("%d年%d月%d日",y,m,b);
    
    else if(days<=(212+a) && days>(151+a))
    
        m=7;
        b=days-(151+a);
        printf("%d年%d月%d日",y,m,b);
    
    else if(days<=(243+a) && days>(121+a))
    
        m=8;
        b=days-(121+a);
        printf("%d年%d月%d日",y,m,b);
    
    else if(days<=(273+a) && days>(243+a))
    
        m=9;
        b=days-(243+a);
        printf("%d年%d月%d日",y,m,b);
    
    else if(days<=(304+a) && days>(273+a))
    
        m=10;
        b=days-(273+a);
        printf("%d年%d月%d日",y,m,b);
    
    else if(days<=(334+a) && days>(304+a))
    
        m=11;
        b=days-(304+a);
        printf("%d年%d月%d日",y,m,b);
    
    else if(days<=(365+a) && days>(334+a))
    
        m=12;
        b=days-(334+a);
        printf("%d年%d月%d日",y,m,b);
    

拜拜

以上是关于输入一个天数和年,求月和日(有平年和闰年)的主要内容,如果未能解决你的问题,请参考以下文章

任输入一平年的月份,输出该月份对应的天数用C语言怎么写?

C语言程序(判断每月天数以及是不是为闰年)

机试常见问题 关于平年闰年的判断问题

输入一个年份,再输入一个月份,判断其是平年还是闰年,然后输出当前月份的天数。

判断某一年是平年还是闰年

mysql 编写sql语句去获取某个月中除了周末的天数。