VS2010/MFC 常用类:CTime 类和 CTimeSpan类

15 篇文章 1 订阅

日期和时间类简介

   CTime 类的对象表示的时间是基于格林威治标准时间(GMT)的。CTimeSpan 类的对 象表示的是时间间隔。 

   CTime 类和 CTimeSpan 类一般不会被继承使用。两者对象的大小都是 8 个字节。 

   CTime 表示的日期上限是 3000 年 12 月 31 日,下限是 1970 年 1 月 1 日 12:00:00 A M GMT。 

CTime 类的主要成员函数

   下面列出 CTime 类的主要成员函数,并加以讲解。 
   CTime(); 
   构造一个未经初始化的 CTime 对象。此构造函数使我们可以定义一个 CTime 对象的 数组,在使用数组前需要以有效的时间值为其初始化。 
   CTime(__time64_t time); 
   以一个__time64_t(注意:最前面的下划线有两条)类型的数据来构造一个 CTime 对 象。参数 time 是一个__time64_t 类型的值,表示自 GMT 时间 1970 年 1 月 1 日零点以来 的秒数,这里要注意的是,参数 time 代表的时间会转换为本地时间保存到构造的 CTime 对 象中。例如,我们传递参数 0 构造一个 CTime 对象,然后调用 CTime 对象的 GetHour 成 员函数将返回 8,因为参数 0 代表的 GMT 时间转换为北京时间后为 1970 年 1 月 1 日 8:0 0:00。 
CTime(  int nYear,
        int nMonth,
        int nDay,
        int nMin,
        int nSec,
        int nDST = -1  
        ); 

以本地时间的年、月、日、小时、分钟、秒等几个时间分量构造 CTime 对象。参数 n Year、nMonth、nDay、nHour、nMin、nSec 分别表示年、月、日、小时、分钟、秒,取值 范围如下:

参数 nDST 指定是否实行夏令时,为 0 时表示实行标准时间,为正数时表示实行夏令 时,为负数时由系统自动计算实行的是标准时间还是夏令时。

     **CTime(const SYSTEMTIME& st,int nDST = - 1) ;** 
   以一个 SYSTEMTIME 结构体变量来构造 CTime 对象。SYSTEMTIME 结构体也是我 们对日期时间的常用表示方式。参数 st 为以本地时间表示的 SYSTEMTIME 对象,参数 nD ST 同上。
     **static CTime WINAPI GetCurrentTime( );** 
   获取系统当前日期和时间。返回表示当前日期和时间的 CTime 对象。 
    **int GetYear( ) const;**
   获取 CTime 对象表示时间的年份。范围从 1970 年 1 月 1 日到 2038 年(包括 2038 年)1 月 18 日。 

   **`int GetMonth( ) const;`** 

   获取 CTime 对象表示时间的月份。范围为 1 到 12。 
     **int GetDay( ) const; 
       获取 CTime 对象表示时间的日期。范围为 131。** 
    **int GetHour( ) const; 
       获取 CTime 对象表示时间的小时。范围为 023。** 
     **int GetMinute( ) const; 
       获取 CTime 对象表示时间的分钟。范围为 059。** 
     **int GetSecond( ) const; 
       获取 CTime 对象表示时间的秒。范围为 059。** 
     **int GetDayOfWeek( ) const; 
       此函数的返回值表示 CTime 对象代表的是星期几,1 表示是周日,2 表示是周一,以 此类推。**
     **CString Format(LPCTSTR pszFormat) const; 
       将 CTime 对象中的时间信息格式化为字符串。参数 pszFormat 是格式化字符串,与 p rintf 中的格式化字符串类似,格式化字符串中带有%前缀的格式码将会被相应的 CTime 时 间分量代替,而其他字符会原封不动的拷贝到返回字符串中。格式码及含义如下:** 
%a:周的英文缩写形式。
%A:周的英文全名形式。 
%B:月的英文全名形式。
%d:十进制形式的日期(01-31)。
%H:24 小时制的小时(00-23)。
%j: 十进制表示的一年中的第几天(001-366)。 
%m: 月的十进制表示(01-12)。 
%M:十进制表示的分钟(00-59)。 
%p: 12 小时制的上下午标示(AM/PM)。 
%S: 十进制表示的秒(00-59)。 
%U: 一年中的第几个星期(00-51),星期日是一周的第一天。 
%W: 一年中的第几个星期(00-51),星期一是一周的第一天。 
%w: 十进制表示的星期几(0-6)。 
%Y: 十进制表示的年。 
     **CTime operator +(CTimeSpan timeSpan) const; 
       将 CTime 对象和 CTimeSpan 对象相加,返回一个 CTime 对象。实际意义就是在一个 时间的基础上推后一个时间间隔,得到一个新的时间。** 
     **CTime operator -(CTimeSpan timeSpan) const; 
       将 CTime 对象和一个 CTimeSpan 相减,返回一个 CTime 对象。实际意义就是在一个 时间的基础上提前一个时间间隔,得到一个新的时间。** 
    **CTimeSpan operator -(CTime time) const; 
       将该 CTime 对象和另一个 CTime 对象相减,返回一个 CTimeSpan 对象。实际意义就 是计算两个时间点的间隔,得到一个 CTimeSpan 对象。**
      **CTime& operator +=(CTimeSpan span); 
       为该 CTime 对象增加一个 span 表示的时间间隔。** 
      **CTime& operator -=(CTimeSpan span); 
       为该 CTime 对象减去一个 span 表示的时间间隔。**
    **CTime& operator =(__time64_t time); 
       为该 CTime 对象赋予一个新的时间值。** 
     简单说下剩下的几个重载 i 运算符:
operator == :    比较两个绝对时间是否相等。        
operator != :    比较两个绝对时间是否不相等。        
operator > :    比较两个绝对时间,是否前一个大于后一个。        operator < :    比较两个绝对时间,是否前一个小于后一个。        operator >= : 比较两个绝对时间,是否前一个大于等于后一个。        operator <= : 比较两个绝对时间,是否前一个小于等于后一个。 
   **CTimeSpan 类的主要成员函数** 

   前面介绍了 CTime 类的成员函数,再来看 CTimeSpan 类的成员函数就比较容易了,

这里只做简单介绍。
CTimeSpan( );
构造一个未经初始化的 CTimeSpan 对象。

   CTimeSpan(__time64_t time); 

CTimeSpan( LONG lDays, int nHours, int nMins, int nSecs );
以天、小时、分钟、秒等时间分量来构造 CTimeSpan 对象。每个时间分量的取值范围 如下: 时间分量 取值范围

     lDays 0-25000(大约) nHours 0-23 nMins 0-59 nSecs 0-59 
       GetDays():获得 CTimeSpan 类对象中包含的完整的天数。 
       GetHours():获得当天的小时数,取值范围为-23 到 23。 
       GetTotalHours():获得 CTimeSpan 类对象中包含的完整的小时数。 
       GetMinutes():获得当前小时包含的分数,取值范围为-59 到 59。 
       GetTotalMinutes():获得 CTimeSpan 类对象中包含的完整的分数。 
       GetSeconds():获得当前分钟包含的秒数,取值范围为-59 到 59。 
       GetTotalSeconds():获得 CTimeSpan 类对象中包含的完整的秒数。 
   CString Format(LPCTSTR pszFormat) const; 
   将一个 CTimeSpan 对象格式化为字符串。使用方式与 CTime::Format 类似,格式码 及含义如下: 
   %D:CTimeSpan 对象中的总天数;        
    %M:不足 1 小时的分钟数;        
    %%:百分号。 
   另外,CTimeSpan 类也重载了运算符“=”,“+”, “-”,“+=”, “-=”,“==”,“!=”,“<”,“>”,“<=”,“>=”,用于 CTimeSpan 对象的赋值、加减运算及两个 CTimeSpan 对象的比较。

详细参考请见http://download.csdn.net/download/iflyme/9917838

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值