MFC常用类--CTime类(一)

CTime

1.构造和初始化CTime类对象

CTime类有下列构造函数:

CTime ;

CTime const CTime& timeSrc ;

CTime time_t time ;

CTime int nYear, int nMonth, int nDay, int nHour, int nMin, int nSec, int nDST = -1 ;

CTime WORD wDosDate, WORD wDosTime, int nDST = -1 ;

CTime const SYSTEMTIME& sysTime, int nDST = -1 ;

CTime const FILETIME& fileTime, int nDST = -1 ;

说明:以不同的方式构造一个CTime对象。可以用一个已经存在的CTime对象或一个time_t(在time.h中被定义为long)类型变量来构造和初始化CTime对象,也可以用年、月、日、小时、分、秒来构造和初始化CTime对象,还可以用SYSTEMTIMEFILETIME结构来构造和初始化CTime对象。SYSTEMTIMEFILETIME结构定义如下:

typedef struct _SYSTEMTIME {
    WORD wYear;
    WORD wMonth;
    WORD wDayOfWeek;
    WORD wDay;
    WORD wHour;
    WORD wMinute;
    WORD wSecond;
    WORD wMilliseconds;
} SYSTEMTIME;

 

typedef struct _FILETIME {
    DWORD dwLowDateTime;   /* low 32 bits  */
    DWORD dwHighDateTime;  /* high 32 bits */
} FILETIME, *PFILETIME, *LPFILETIME;

 

2.时间值的提取函数

1GetCurrentTime()   获取系统当前时间。

原型:static CTime PASCAL GetCurrentTime ;

2GetTime()  CTime对象返回一个time_t变量。

原型:time_t GetTime const;

3GetYear()   获取CTime对象代表的年。

原型:int GetYear const;

以下(4)至(9)函数原型与GetYear()类似。

4GetMonth()获取CTime对象代表的月。

5GetDay() 获取CTime对象代表的日期。

6GetHour() 获取CTime对象代表的小时。

7GetMinute()获取CTime对象代表的分。

8GetSecond() 获取CTime对象代表的秒。

9GetDayOfWeek() 获取CTime对象代表的星期几,1代表周日、2代表周一、等等。

3.格式化时间

成员函数Format() CTime对象中的时间信息转化为一个格式化的字符串。其函数原型为:

CString Format LPCTSTR pFormat const;

CString Format UINT nFormatID const;

参数pFormat是格式字符串,类似于printf中的格式字符串,格式字符如下:

%a:周的英文缩写形式;

%A:周的英文全名形式;

%b 月的英文缩写形式;

%B:月的英文全名形式;

%c 完整的日期和时间;

%d:十进制形式的日期(01-31);

%H24小时制的小时(00-23);

%I 12小时制的小时(00-11);

%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 十进制表示的年;

参数nFormatID 是格式字符串资源的ID号。

4.重载运算符

operator =   赋予新的时间。

operator +   增加CTimeCTimeSpan对象。

operator –   减小CTimeCTimeSpan对象。

operator += CTime对象加一个CTimeSpan对象。

operator -=   CTime对象减一个CTimeSpan对象。

operator ==   比较两个绝对时间是否相等。

operator !=   比较两个绝对时间是否不相等。

operator >   比较两个绝对时间,是否前一个大于后一个。

operator <   比较两个绝对时间,是否前一个小于后一个。

operator >=  比较两个绝对时间,是否前一个大于等于后一个。

operator <=  比较两个绝对时间,是否前一个小于等于后一个。

例子代码

1:获取当前时间

       CTime m_time=CTime::GetCurrentTime();

       CString s=m_time.Format("%A,%B,%d,%Y");

       CString m_strTime="当前时间是:"+s;

       MessageBox(m_strTime);

运行结果在信息框中显示当前时间是:Sunday,February,4,2001”,程序第一行获取系统当前时间,并赋给m_time。第二行从m_time创建一个字符串对象,将该字符串赋给变量s,格式%A为周的英文全名形式,%B为月的英文全名形式,%d为十进制形式的日期(01-31),%Y 十进制表示的年。

2:由年、月、日得到对应的周日。

       CTime m_time(2001,2,5,12,0,0);

       int weekday=m_time.GetDayOfWeek();

       switch(weekday)

       {

              case 1:

                     MessageBox("今天是周日");

                     break;

              case 2:

                     MessageBox("今天是周一");

                     break;

              case 3:

                     MessageBox("今天是周二");

                     break;

              case 4:

                     MessageBox("今天是周三");

                     break;

              case 5:

                     MessageBox("今天是周四");

                     break;

              case 6:

                     MessageBox("今天是周五");

                     break;

              case 7:

                     MessageBox("今天是周六");

                     break;

              default:

                     break;

       }

运行结果在信息框中显示今天是周一m_time.GetDayOfWeek()获取m_time代表的周几(1代表周日,2代表周一等等)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值