Windows中如何计算时间间隔(2)COleDateTime 和COleDateTimeSpan类

130 篇文章 0 订阅
123 篇文章 1 订阅

   

COleDateTime 和COleDateTimeSpan 也是常用的2个时间类,其用法类似于前面的CTime和CTimeSpan.先分别进行说明,下面的内容引用自MSDN。

   COleDateTime没有基类。

  COleDateTime类封装了OLE自动化中使用的DATE数据类型。它是OLE自动化的VARIANT数据类型的可能类型之一。一个COleDateTime值代表一个绝对的日期和时间值。
  DATE类型实现为一个浮点值,从1899年12月30日午夜起计算“日”数。所以1899年12月31日午夜用数1.0来表示。相似的,1900年1月1日下午6时用数2.75来表示,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值转换为一个DATE
  operator DATE*将一个COleDateTime值转换为一个DATE*
  operator =复制一个COleDateTime值
  operator +, -加减COleDateTime值
  operator +=, -=从该COleDateTime对象中加上或减去一个COleDateTime值
  关系操作符比较两个COleDateTime值

数据成员

  m_dt包含该COleDateTime对象对应的DATE
  m_status包含该COleDateTime对象的状态

归档/存储

  operator <<从CArchive或CDumpContext输出COleDateTime值

  operator >>从CArchive输入一个COleDateTime值

 

 

COleDateTimeSpan

  COleDateTimeSpan没有基类。
  一个COleDateTimeSpan对象表示一个相对的时间,即一个时间段。
  COleDateTimeSpan以日为单位来保存时间。
  COleDateTimeSpan类常常与类COleDateTime一起使用。COleDateTime封装了OLE自动化中的DATE数据类型。COleDateTime表示绝对的时间值。所有的COleDateTime计算都涉及COleDateTimeSpan值。这两个类之间的关系类似于类CTime和类CTimeSpan之间的关系。
  有关类COleDateTime和COleDateTimeSpan的更进一步的信息,可以参考“Visual C++程序员指南”一书中的文章“日期与时间:自动化支持”。
  #include <afxdisp.h>
  COleDateTimeSpan类成员
  构造
COleDateTimeSpan构造COleDateTimeSpan对象
  属性
GetStatus获取COleDateTimeSpan对象的状态(有效性)
SetStatus设置COleDateTimeSpan对象的状态(有效性)
GetDays返回COleDateTimeSpan对象所表示的时间段的日部分
GetHours返回COleDateTimeSpan对象所表示的时间段的小时部分
GetMinutes返回COleDateTimeSpan对象所表示的时间段的分钟部分
GetSeconds返回COleDateTimeSpan对象所表示的时间段的秒部分
GetTotalDays返回COleDateTimeSpan对象所表示的天数
GetTotalHours返回COleDateTimeSpan对象所表示的小时数
  属性
GetTotalMinutes返回COleDateTimeSpan对象所表示的分钟数
GetTotalSeconds返回COleDateTimeSpan对象所表示的秒数
  操作
SetDateTimeSpan设置COleDateTimeSpan对象的值
Format产生一个COleDateTimeSpan对象的格式化字符串表达式
  操作
operator double将COleDateTimeSpan的值转换为双精度值
operator =拷贝一个COleDateTimeSpan值
operator +,-加、减COleDateTimeSpan值,或改变COleDateTimeSpan值的符号
operator +=,-=从一个COleDateTimeSpan值中加、减这个COleDateTimeSpan值
关系操作符比较两个COleDateTimeSpan值
  数据成员
m_span记录这个COleDateTimeSpan对象所代表的基本的双精度值
m_status记录COleDateTimeSpan对象的状态
  Dump/Archive
operator <<将COleDateTimeSpan值输出到CArchive或CDumpContext
operator >>从CArchive输入一个COleDateTimeSpan对象

SYSTEMTIME &stTimeF;
SYSTEMTIME &stTimeS;
。。。。。。。。。。。
COleDateTime dTimeF(stTimeF);
COleDateTime dTimeS(stTimeS);
COleDateTimeSpan dTimeSpan = dTimeF - dTimeS;
int nSecnonSpan = dTimeSpan.GetTotalSeconds();

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值