days

/*储存12个月的天数*/
const int days[12]={31,28,31,30,31,30,31,31,30,31,30,31};

/*判断是否为闰年*/
int isLeapYear(int year)
{
 if(((year%4==0)&&(year%100!=0))
    ||(year%400==0))
 {
  return 1;
 }
 return 0;
}


int CalcHowManyDays(unsigned int Year,
                    unsigned int Month,
                    unsigned int Day,
                    unsigned int * pSumOfDays)
{
    if(Month<=0||Month>12 || Day<=0||Day >31 || NULL == pSumOfDays)
      return -1;

    long sum=0;
    int i;
    //累计当年以往各月的天数
    for(i=0;i<Month-1;i++)
    {
        sum+=days[i];
    }
    if(Month>2)
    {
        if(isLeapYear(Year))
        {//闰年多一天
            sum+=1;
        }
    }
    //累计当年当月的天数
    sum+=Day;
    *pSumOfDays = sum;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/libin88211/article/details/47706245