计算某日是该年的第几天

#include <stdio.h>
int leap(int a)
{
    if(a%4==0&&a%100!=0||a%400==0) //闰年判定条件
        return 1;
    else return 0; 
}
int number(int year,int m,int d)
{
    int sum=0;
    int a[12]={31,28,31,30,31,30,31,31,30,31,30,31}; //存放平年每月天数
    int b[12]={31,29,31,30,31,30,31,31,30,31,30,31}; //存放闰年每月天数
    if(leap(year)==1)
        for(int i=0;i<m-1;i++)
            sum+=b[i]; //累加闰年前m-1个月的天数
        else{
            for(int i=0;i<m-1;i++)
                sum+=a[i]; //累加平年前m-1个月的天数
        }
    sum+=d; //将前面累加的结果加上日期,求出总天数
    return sum;
}
main()
{
    int year,m,d,n;
    printf("请输入年月日\n");
    scanf("%d%d%d",&year,&m,&d);
    n=number(year,m,d); //调用函数number()
    printf("第%d天\n", n);
}

结果

E:\c++>a
请输入年月日

2011 11 24
第328天

E:\c++>a
请输入年月日
2012 11 24
第329天

 

posted @ 2018-04-25 19:56  糖小俊  阅读(275)  评论(0编辑  收藏  举报