65,211
社区成员
发帖
与我相关
我的任务
分享
//
// 计算指定日期与当前日期的时间差
// 起始时间格式为 'YYYY-mm-dd HH:MM:SS'
//
void g_DateDiff( char* pRetBuf, char* pStartTime )
{
struct tm time1, time2;
time_t now, start;
double diff;
int day, hour, min, sec;
strptime( pStartTime, "%Y-%m-%d %H:%M:%S", &time1 );
start = mktime( &time1 );
time( &now );
diff = difftime( now, start );
day = (int)( diff / ( 3600 * 24 ));
hour = (int)(( diff - day * 3600 * 24 ) / 3600 );
min = (int)(( diff - day * 3600 * 24 - hour * 3600 ) / 60 );
sec = (int)( diff - day * 3600 * 24 - hour * 3600 - min * 60 );
sprintf( pRetBuf, "%d 天, %d 小时, %d 分, %d 秒", day, hour, min, sec );
}
// 测试代码:
char ret[80];
g_DateDiff( ret, "2008-12-06 15:50:00" );
printf( "时间差值: %s\n", ret );