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 >=  比较两个绝对时间,是否前一个大于等于后一个。
cstring转为intoperator <=  比较两个绝对时间,是否前一个小于等于后一个。
例子代码
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代表周一等等)。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。