欢迎来带Jack的程序世界

做一名合格的程序员

C语言-计算某日是该年的第几天

具体需求:编写一个计算天数的程序,用户通过键盘输入年、月、日,在屏幕中输出此日期是该年的第几天


思路:首先判断输入的年份是否是闰年,然后再计算输入的日期为该年的第几天


具体代码实现


1:首先自定义leapYear函数实现判断输入的年份是否有闰年

int leapYear(int a){

    if ((a%4 == 0 && a%100 != 0) || a%400 == 0) { //闰年判断条件
        return 1; //是闰年返回1
    }else{
        return 0; //不是闰年返回0
    }
    
}

2:自定义calculateDate函数实现计算输入的日期为该年的第几天

int calculateDate(int year, int month, int day){

    int sum = 0,i;
    int a[12] = {31,28,31,30,31,30,31,31,30,31,30,31}; //数组a存放平年每月的天数
    int b[12] = {31,29,31,30,31,30,31,31,30,31,30,31}; //数组b存放闰年每月的天数
    
    if (leapYear(year) == 1) { //判断是否为闰年
        for (i = 0; i < month - 1; i++) {
            sum += b[i];  //是闰年累加数组b前month - 1个月的天数
        }
    }else{
        for (i = 0; i < month - 1; i++) {
            sum += a[i]; //不是闰年,累加数组a前month - 1个月的天数
        }
    }
    
    sum += day;  //根据前面累加的结果加上日期,求出总天数
    return sum;
    
}

3:main函数中进行调用

int main(int argc, const char * argv[]) {

    int year,month,day,result;
    printf("请输入年月日\n");
    scanf("%d%d%d",&year,&month,&day);  //输入年月日
    result = calculateDate(year, month, day); //调用计算天数函数
    printf("第%d天\n",result);
    
    /*
     请输入年月日
     2017 2 26
     第57天
     */
    return 0;
}



阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/longshihua/article/details/57407054
个人分类: C、C++
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

C语言-计算某日是该年的第几天

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭