c语言怎么求两个日期相差的秒数,日期格式20140325150630和20140324150000

如题所述

#include <stdio.h>
#include <time.h>

int main(void)
{
struct tm time_cha;
time_t t1,t2;
long int d;
int year, month, day,hour,min,sec;

scanf("%4d%2d%2d%2d%2d%2d",&year,&month,&day,&hour,&min,&sec);
time_cha.tm_year = year - 1900; //tm结构记录年为实际-1900
time_cha.tm_mon = month - 1;
time_cha.tm_mday = day;
time_cha.tm_hour = hour;
time_cha.tm_min = min;
time_cha.tm_sec = sec;
t1 = mktime(&time_cha);//获得从1970年1月1日0时0分0秒以来过去的时间,秒

scanf("%4d%2d%2d%2d%2d%2d",&year,&month,&day,&hour,&min,&sec);
time_cha.tm_year = year - 1900; //tm结构记录年为实际-1900
time_cha.tm_mon = month - 1;
time_cha.tm_mday = day;
time_cha.tm_hour = hour;
time_cha.tm_min = min;
time_cha.tm_sec = sec;
t2 = mktime(&time_cha);

d=t1-t2;//经过的时间差(秒)
printf("%ld\n", d);

return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-25
头文件
#include<time.h>

利用结构体tm

strcut tm tm1,tm2;
time_t timep1,timep2;

//先赋值20140325150630,注意下面减一的地方
tm1.tm_year=2014-1900;
tm1.tm_mon=3-1;
tm1.tm_mday=25;
tm1.tm_hour=15-1;
tm1.tm_min=6-1;
tm1.tm_sec=30-1;

tm2.....;

//转化为秒数

timep1=mktime(&tm1);
timep2=mktime(&tm2);

//减一下就是秒数差

timep2-timep1
第2个回答  2014-03-25
例如 int m,m1,m2,s,s1,s2;
s=s2-s1;
if(s<0){s+=60;m--;} //借位的处理
相似回答