输入一个日期,减去另一个日期的天数用c语言编程

如题所述

//摘自网上,算法可自行度娘
#include <stdio.h>  
#include <stdlib.h>  
/*
输入参数:year_start,month_start,day_start,开始年月日
year_end,month_end,day_end,结束年月日
返回两日期之间相差天数
对算法有兴趣可自行度娘
 */
int day_diff(int year_start, int month_start, int day_start  
            , int year_end, int month_end, int day_end)  
{  
    int y2, m2, d2;  
    int y1, m1, d1;  
      
    m1 = (month_start + 9) % 12;  
    y1 = year_start - m1/10;  
    d1 = 365*y1 + y1/4 - y1/100 + y1/400 + (m1*306 + 5)/10 + (day_start - 1);   
    m2 = (month_end + 9) % 12;  
    y2 = year_end - m2/10;  
    d2 = 365*y2 + y2/4 - y2/100 + y2/400 + (m2*306 + 5)/10 + (day_end - 1);  
      
    return (d2 - d1);  
}  
  
int main(void)  
{  
   
    int d=day_diff(0, 10, 1, 2018, 1, 26);//公元2018年1月26日与公元0年10月1日 
    //相差的天数
    printf("相差 %d 天\n",d);
    printf("%d\n", day_diff(2018, 5, 1, 2018, 6, 26));  
    printf("%d\n", day_diff(2015, 1, 29, 2018, 2, 9));        
    return 0;  
}

温馨提示:答案为网友推荐,仅供参考
相似回答