日期的格式:“yymmddhhmmss”是一个字符串,计算两个日期之间的差值,显然就是计算两个日期之间相差的秒数,有个简洁的方法是将字符串转化为time_t格式,然后求取差值。
用time_t表示的时间(日历时间)是从一个时间点(例如:1970年1月1日0时0分0秒)到此时的秒数
我们可以看到它的定义是这样的
#ifndef _TIME_T_DEFINED
typedef long time_t; /* 时间值 */
#define _TIME_T_DEFINED /* 避免重复定义 time_t */
#endif
由于长整形数值大小的限制,它所表示的时间不能晚于2038年1月18日19时14分07秒,所以现在我们还能放心的使用二十多年。
将时间转化为time_t格式,其实就是整型,然后求取差值,即可得出两个时间之间相差的秒数了。具体代码就不写了。
我当初没有想到此方法,用了一种比较笨的办法,就是计算:相差天数*1440*60+相差秒数
代码大概是这样的:
//获取两个时间相差分钟数
int GetDifMin(string strTime1, string strTime2)
{
if (strTime1.length() != 12 || strTime2.length() != 12)
{
return -1;
}
if (strTime1.compare(strTime2) < 0)
{
string