1.由于存在闰月,将1月与2月当于上一年的11月与12月计算,3月才开始作为当年的第一个月,减出闰年的影响
month = month - 2; //注意此处为有符号数
if (month <= 0)
{
month += 12;
year -= 1;
}
2.计算一共有多少天
t_day = (unsigned long)(year/4 - year/100 + year/400 + 367*month/12 + day) + year * 365 - 719499; //日期从1970-1-1 00:00:00 开始计算的
3.计算一共有多少小时
t_hour = t_day*24 + hour;
3.计算一共有多少分钟
t_min = t_hour*60 + min;
4.计算一共有多少秒
t_sec = t_min*60 + sec;
合并在一起即为:
timesec = ((((unsigned long)(year/4 - year/100 + year/400 + 367*month/12 + day) + year * 365 - 719499)*24 + hour)*60 + min)*60 + sec;