C语言中计算2个时间的差值的函数我想要的是一个封装好的函数,大概形式int day(char *date1,char *date2){我想要的内容return day; }我会传递2个格式为char型的数组a[11]内容物格式为YYYY-MM-DD的名

来源:学生作业帮助网 编辑:作业帮 时间:2024/09/29 14:08:17
C语言中计算2个时间的差值的函数我想要的是一个封装好的函数,大概形式int day(char *date1,char *date2){我想要的内容return day; }我会传递2个格式为char型的数组a[11]内容物格式为YYYY-MM-DD的名
xV]OA+$1MZԗ[_kB.iL[QHjShmԢ>ey/tfgfjS ܹs JIVVo"V^? -rCݬٷ*N@uAG@/:Xf-g&p<9ݖs 2| $bvc:("t{2DW >A6"3MQ3;=/ԔwreXKUp@2$fRU1oUP7rh'ҊqrZ:Hk`c N.V_*(7^Q V2`㴕խoI6bq^S *{W7kBQnA=>BpR.X %&D`8*D. ?CY.N' l)Z: 3}xƒƓyb^5> &SA#3YUa\!&i7s#d!c?K(6L s'א mQABŖDxu )Y:k.N Sz(nRJvB(h [e8@N`oq2W[K\8*pkoK,JXNZ-Lz&}}Lt^kEtq9/g]}Ϸ+wl@|u)zCȃ'0ypDJ$P4![эKƍ)!byۋ\*y/o2H3!4|I;s_z{nOH0W

C语言中计算2个时间的差值的函数我想要的是一个封装好的函数,大概形式int day(char *date1,char *date2){我想要的内容return day; }我会传递2个格式为char型的数组a[11]内容物格式为YYYY-MM-DD的名
C语言中计算2个时间的差值的函数
我想要的是一个封装好的函数,大概形式
int day(char *date1,char *date2){
我想要的内容
return day;

我会传递2个格式为char型的数组a[11]内容物格式为YYYY-MM-DD的名字给该函数,
希望计算前者与后者的时间差值,精确到天就可以,希望包含闰年判断,
附闰年判断条件:该年份可以被4且100整除或者可以被400整除.
希望帮忙写出该函数,

C语言中计算2个时间的差值的函数我想要的是一个封装好的函数,大概形式int day(char *date1,char *date2){我想要的内容return day; }我会传递2个格式为char型的数组a[11]内容物格式为YYYY-MM-DD的名
#include <time.h>
#include <stdio.h>

time_t _mktime( char *slTime ) /** yyyy-mm-dd **/
{
    struct tm tm_t;
    int year;
    int mon;
    int day;

    sscanf( slTime, "%4d-%2d-%2d", &year, &mon, &day );

    tm_t.tm_year = year - 1900;
    tm_t.tm_mon = mon - 1;
    tm_t.tm_mday = day;
    tm_t.tm_hour = 12;
    tm_t.tm_min = 00;
    tm_t.tm_sec = 01;
    tm_t.tm_wday = 0;
    tm_t.tm_yday = 0;
    tm_t.tm_isdst = 0;

    return mktime( &tm_t );
}

int daydiff( char *date1, char *date2 ) /** yyyy-mm-dd **/
{
    time_t t1 = _mktime( date1 );
    time_t t2 = _mktime( date2 );
    time_t diff = abs( t2 - t1 );
    return (int)( diff / (24*60*60) );
}
int main()
{
    char date1[12], date2[12];
    printf( "input date1: " );
    scanf( "%s", date1 );
    fflush( stdin );
    printf( "input date2: " );
    scanf( "%s", date2 );
    fflush( stdin );
    printf( "%s - %s is %d days\n", date1, date2, daydiff(date1, date2) );
}