1.OLE时间是用double类型来表示的,整数部分是自1900年至今流逝的天数包含润年计算,而小数部是不足一天流逝的总秒数。
2.CTime时间用的是__int64类型来表示的,数值是自1900年至今流逝的总秒数。
3.下面用代码来描述一下转换的算法,值得一提的是两个函数都对25569数进行了加减,而这个值是1900-01-01到1970-01-01所流逝的总天数。
//OLE时间转CTime时间
__time64_t OleTimeToCTime(double t)
{
return (__time64_t)((t - 25569) * 86400.0 - 8 * 3600 + 0.5);
}
//CTime时间转OLE时间
double CTimeToOleTime(__time64_t t)
{
return (double)(25569 + t / 86400.0 + 8.0 / 24.0) ;
}