COleDateTime
COleDateTime没有基类。
COleDateTime类封装了在OLE自动中使用的DATE数据类型。它是OLE自动的VARIANT数据类型的一种可能类型。一个COleDateTime值代表一个绝对的日期和时间值。
DATE类型实现为一个浮点值,从1899年12月30日午夜起计算“日”。所以1899年12月31日午夜用数1.0来代表。相似的,1900年1月1日下午6时用数2.25来代表,1899年12月29日午夜是-1.0。而1899年12月29日下午6 时用数-0.25来代表。
注意:解释时间各部分的值时,要取数据的相应部分的绝对值。
COleDateTime类处理了从100年1月1日到9999年12月31日的日期。
注意:
COleDateTime忽略了夏时制。可参阅联机文档《Visual C++程序员指南》中的“日期和时间:自动支持”,以了解详细情况。该类型也可用于仅仅代表日期或时间的值。按通常约定,日期0(1899年12月30日)用于仅代表时间的值,相似地,时间0:00(午夜)用于仅代表日期的值。
如果创建一个日期小于100的COleDateTime对象,则此日期可被接受,但以后调用GetYear,GetMonth,GetDay,GetHour,GetMinute和GetSecond将失败,并返回-1。以前可用两位表示日期,但在MFC 4.2及以后的版本中,日期必须大于100。
要避免出现问题,可指定4位表示日期,例如:
COleDataTime.mytime(1996,1,1,0,0,0);
COleDateTime值的算术运算使用互补类COleDateTimeSpan。COleDateTimeSpan值代表相对时间,一个区间。它们之间的关系类似于CTime和CTimeSpan之间的关系。
#include <afxdisp.h>
COleDateTime类的成员
构造函数COleDateTime构造一个COleDateTime对象GetCurrentTime创建一个代表当前时间的COleDateTime对象(静态成员函数)
属性GetStatus获取该COleDateTime对象的状态(有效性)SetStatus设置该COleDateTime对象的状态(有效性)GetAsSystemTime转换COleDateTime对象的时间用一个SYSTEMTIME数据结构表示GetYear返回该COleDateTime对象代表的年GetMonth返回该COleDateTime对象代表的月(1-12)GetDay返回该COleDateTime对象代表的日(1-31)GetHour返回该COleDateTime对象代表的时(0-23)GetMinute返回该COleDateTime对象代表的分(0-59)GetSecond返回该COleDateTime对象代表的秒(0-59)GetDayOfWeek返回该COleDateTime对象代表的该天是星期几(星期日=1)GetDayOfYear返回该COleDateTime对象代表的该天是年内第几天(1月1日=1)
操作SetDateTime设置该COleDateTime对象值为指定的日期/时间值SetDate设置该COleDateTime对象值为指定的日期值SetTime设置该COleDateTime对象值为指定的时间值Format生成一个代表一COleDateTime对象的格式化字符串ParseDateTime从一个字符串读取一个日期/时间值并设置为COleDateTime的值
操作符operator DATE将一个COleDateTime值转换为一个DATEoperator DATE*将一个COleDateTime值转换为一个DATE*operator =复制一个COleDateTime值operator +, -加减COleDateTime值operator +=, -=从该COleDateTime对象中加上或减去一个COleDateTime值关系操作符比较两个COleDateTime值
数据成员m_dt包含该COleDateTime对象对应的DATEm_status包含该COleDateTime对象的状态
归档/存储operator <<从CArchive或CDumpContext输出COleDateTime值operator >>从CArchive输入一个COleDateTime值