有时候,我要用到以前的某个时刻到现在的秒数,比如发送本地的时间戳到网络、internet同步等。经常用到的就是从1900年1月1号0时0分0秒到现在的时间间隔和1970年1月1号0时0分0秒到现在的时间间隔。
----------part one----------
在c语言的函数里面,有一个函数在time.h里面的是
time_t time(time_t*timer) 返回的就是1970年1月1号0时0分0秒到当前时刻的秒数。
----------part two----------
在c++,用vc++编译器,MFC功能,可以用到两个类 一个CTime类 另一个是COleDateTime类。这两个类都是创建一个时间的类,可以初始化成任意时刻的时间。例如,我们要知道1970年1月1号0时0分0秒到现在的时间间隔
用COLeDateTime类:
COleDateTime T1900(1900,1,1,0,0,0); //1900年1月1日0时0分0秒COleDateTime
COleDateTime TNow = COleDateTime::GetCurrentTime(); //当前时间
COleDateTimeSpan Span; //时间间隔类
unsigned long Total;
Span1 = TNow - T1900; //两个时间相减
Total = Span.GetTotalSeconds(); //用时间间隔类的方法的到秒数
用CTime类,的情况差不错:
CTimeSpan t = CTime::GetCurrentTime()-CTime(1900,1,1,0,0,0);
Total = t.GetTotalSeconds()
注意:这两个类(在afx.h里),可以不用头文件的,只要我们在建一个console 工程的时候,选择工程的初始是可用MFC,即可。
----------part three----------
在这里有个数,想跟大家说一说。就是1900年1月1号0时0分0秒到1970年1月1号0时0分0秒,这个时间内经过的秒数。这个数字在我们做网络包的时间戳的转换的时候有用: