日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

CTime类小结1

發(fā)布時(shí)間:2023/11/27 生活经验 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CTime类小结1 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

參考:http://www.cnblogs.com/chuncn/archive/2009/03/12/1409261.html

CTime類(lèi)
1.構(gòu)造和初始化CTime類(lèi)對(duì)象
CTime類(lèi)有下列構(gòu)造函數(shù):
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 );
說(shuō)明:以不同的方式構(gòu)造一個(gè)CTime對(duì)象。可以用一個(gè)已經(jīng)存在的CTime對(duì)象或一個(gè)time_t(在time.h中被定義為long)類(lèi)型變量來(lái)構(gòu)造和初始化CTime對(duì)象,也可以用年、月、日、小時(shí)、分、秒來(lái)構(gòu)造和初始化CTime對(duì)象,還可以用SYSTEMTIME、FILETIME結(jié)構(gòu)來(lái)構(gòu)造和初始化CTime對(duì)象。SYSTEMTIME、FILETIME結(jié)構(gòu)定義如下:
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;????
????? DWORD dwHighDateTime;???
} FILETIME, *PFILETIME, *LPFILETIME;
2.時(shí)間值的提取函數(shù)
(1)GetCurrentTime()???? 獲取系統(tǒng)當(dāng)前時(shí)間。
原型:static CTime PASCAL GetCurrentTime( );
(2)GetTime()??? 由CTime對(duì)象返回一個(gè)time_t變量。
原型:time_t GetTime( ) const;
(3)GetYear()???? 獲取CTime對(duì)象代表的年。
原型:int GetYear( ) const;
以下(4)至(9)函數(shù)原型與GetYear()類(lèi)似。
(4)GetMonth()獲取CTime對(duì)象代表的月。
(5)GetDay() 獲取CTime對(duì)象代表的日期。
(6)GetHour() 獲取CTime對(duì)象代表的小時(shí)。
(7)GetMinute()獲取CTime對(duì)象代表的分。
(8)GetSecond() 獲取CTime對(duì)象代表的秒。
(9)GetDayOfWeek() 獲取CTime對(duì)象代表的星期幾,1代表周日、2代表周一、等等。
3.格式化時(shí)間
成員函數(shù)Format() 將CTime對(duì)象中的時(shí)間信息轉(zhuǎn)化為一個(gè)格式化的字符串。其函數(shù)原型為:
CString Format( LPCTSTR pFormat ) const;
CString Format( UINT nFormatID ) const;
參數(shù)pFormat是格式字符串,類(lèi)似于printf中的格式字符串,格式字符如下:
%a:周的英文縮寫(xiě)形式;
%A:周的英文全名形式;
%b: 月的英文縮寫(xiě)形式;
%B:月的英文全名形式;
%c: 完整的日期和時(shí)間;
%d:十進(jìn)制形式的日期(01-31);
%H:24小時(shí)制的小時(shí)(00-23);
%I: 12小時(shí)制的小時(shí)(00-11);
%j: 十進(jìn)制表示的一年中的第幾天(001-366);
%m: 月的十進(jìn)制表示(01-12);
%M:十進(jìn)制表示的分鐘(00-59);
%p: 12小時(shí)制的上下午標(biāo)示(AM/PM);
%S: 十進(jìn)制表示的秒(00-59);
%U: 一年中的第幾個(gè)星期(00-51),星期日是一周的第一天;
%W: 一年中的第幾個(gè)星期(00-51),星期一是一周的第一天;
%w: 十進(jìn)制表示的星期幾(0-6);
%Y: 十進(jìn)制表示的年;
參數(shù)nFormatID 是格式字符串資源的ID號(hào)。
4.重載運(yùn)算符
operator = :??? 賦予新的時(shí)間。
operator + :??? 增加CTime和CTimeSpan對(duì)象。
operator – :??? 減小CTime和CTimeSpan對(duì)象。
operator += : CTime對(duì)象加一個(gè)CTimeSpan對(duì)象。
operator -= :??? CTime對(duì)象減一個(gè)CTimeSpan對(duì)象。
operator == :??? 比較兩個(gè)絕對(duì)時(shí)間是否相等。
operator != :??? 比較兩個(gè)絕對(duì)時(shí)間是否不相等。
operator > :??? 比較兩個(gè)絕對(duì)時(shí)間,是否前一個(gè)大于后一個(gè)。
operator < :??? 比較兩個(gè)絕對(duì)時(shí)間,是否前一個(gè)小于后一個(gè)。
operator >=??? : 比較兩個(gè)絕對(duì)時(shí)間,是否前一個(gè)大于等于后一個(gè)。
operator <=??? : 比較兩個(gè)絕對(duì)時(shí)間,是否前一個(gè)小于等于后一個(gè)。

?

CTimeSpan類(lèi)
1.構(gòu)造函數(shù)。
CTimeSpan類(lèi)有下列構(gòu)造函數(shù)
(1)CTimeSpan() ;
(2)CTimeSpan( const CTimeSpan& timeSpanSrc );
(3)CTimeSpan( time_t time );
(4)CTimeSpan( LONG lDays, int nHours, int nMins, int nSecs );
參數(shù)timeSpanSrc為一個(gè)已存在的 CTimeSpan 對(duì)象,time為一個(gè)time_t 類(lèi)型的時(shí)間值,lDays, nHours, nMins, nSecs分別為天數(shù)、小時(shí)數(shù)、分?jǐn)?shù)和秒數(shù)。
2.時(shí)間值的提取函數(shù)
(1)GetDays()???? 獲得CTimeSpan類(lèi)對(duì)象中包含的完整的天數(shù)。
(2)GetHours()???? 獲得當(dāng)天的小時(shí)數(shù),值在-23到23之間。
(3)GetTotalHours()???? 獲得CTimeSpan類(lèi)對(duì)象中包含的完整的小時(shí)數(shù)。
(4)GetMinutes()???? 獲得當(dāng)前小時(shí)包含的分?jǐn)?shù),值在-59到59之間。
(5)GetTotalMinutes()??? 獲得CTimeSpan類(lèi)對(duì)象中包含的完整的分?jǐn)?shù)。
(6)GetSeconds()???? 獲得當(dāng)前分鐘包含的秒數(shù),值在-59到59之間。
(7)GetTotalSeconds()??? 獲得CTimeSpan類(lèi)對(duì)象中包含的完整的秒數(shù)。
格式化時(shí)間
Format() 將一個(gè)CTimeSpan對(duì)象轉(zhuǎn)換成格式字符串。使用方式與CTime類(lèi)似,格式化字符包括以下幾個(gè):
%D:???? CTimeSpan的總天數(shù);
%H:???? 不足整天的小時(shí)數(shù);
%M:???? 不足1小時(shí)的分?jǐn)?shù);
%S:???? 不足1分鐘的秒數(shù);
%%:???? 百分號(hào)。
4.重載運(yùn)算符
CTimeSpan類(lèi)也重載了運(yùn)算符“=”,“+”,“-”,“+=”,“-=”,“==”,“!=”,“<”,“>”,“<=”,“>=”,用于CTimeSpan對(duì)象的賦值、加減運(yùn)算及兩個(gè)CTimeSpan對(duì)象的比較。

?

eg.

#include <iostream>
#include <atltime.h>

using namespace std;

void main()
{
??? // CTime 函數(shù)
??? CTime curtime = CTime::GetCurrentTime();

??? int? iyear = curtime.GetYear();
??? int? imonth = curtime.GetMonth();
??? int? iday = curtime.GetDay();
??? int? idayofweek = curtime.GetDayOfWeek();
??? int? ihour = curtime.GetHour();
??? int? iminute = curtime.GetMinute();
??? int? isecond = curtime.GetSecond();

??? cout<<"當(dāng)前時(shí)間:"<<endl;
??? cout<<iyear<<"年";
??? cout<<imonth<<"月";
??? cout<<iday<<"日";
??? cout<<ihour<<"時(shí)";
??? cout<<iminute<<"分";
??? cout<<isecond<<"秒"<<endl;
??? cout<<"星期"<<idayofweek<<"(周日算1)"<<endl<<endl;

??? // 時(shí)間比較
??? CTime begintime = CTime(2006,1,1,0,0,0);
??? cout<<"起始時(shí)間:"<<endl;
??? cout<<begintime.GetYear()<<"年";
??? cout<<begintime.GetMonth()<<"月";
??? cout<<begintime.GetDay()<<"日";
??? cout<<begintime.GetHour()<<"時(shí)";
??? cout<<begintime.GetMinute()<<"分";
??? cout<<begintime.GetSecond()<<"秒"<<endl;
??? cout<<"星期"<<begintime.GetDayOfWeek()<<"(周日算1)"<<endl<<endl;

??? CTimeSpan span;
??? span = curtime - begintime;
??? cout<<"兩時(shí)間相差:"<<endl;
??? cout<<span.GetDays()<<"天";???
??? cout<<span.GetHours()<<"小時(shí)";???
??? cout<<span.GetMinutes()<<"分";???
??? cout<<span.GetSeconds()<<"秒"<<endl;

??? cout<<"總小時(shí)"<<span.GetTotalHours()<<"小時(shí)"<<endl;
??? cout<<"總分鐘"<<span.GetTotalMinutes()<<"分"<<endl;
??? cout<<"總秒"<<span.GetTotalSeconds()<<"秒"<<endl;???

??? cout<<endl;
??? // CTime到CString的轉(zhuǎn)化
??? CString strtime;
??? strtime = curtime.Format(_T("%Y-%m-%d %X"));
???
??? wcout<<(LPCTSTR)strtime<<endl; // 因?yàn)槭褂肬NICODE,或用下面的方面顯示
??? wcout<<strtime.GetString()<<endl;

??? system("pause");
}

結(jié)果為

當(dāng)前時(shí)間:
2011年2月16日20時(shí)37分3秒
星期4(周日算1)

起始時(shí)間:
2006年1月1日0時(shí)0分0秒
星期1(周日算1)

兩時(shí)間相差:
1872天20小時(shí)37分3秒
總小時(shí)44948小時(shí)
總分鐘2696917分
總秒161815023秒

2011-02-16 20:37:03
2011-02-16 20:37:03
請(qǐng)按任意鍵繼續(xù). . .

?

注意:

在控制臺(tái)中使用cout顯示CString類(lèi),

std::cout不支持寬字符,如果需要使用UNICODE,需要使用std::wcout輸出寬字符。同時(shí),需要對(duì)CString做一下轉(zhuǎn)換,LPCTSTR(cpath)或者wcout<<cpath.GetString()<<endl;;或者使用NotSet或者M(jìn)ulti-CharSet就可以使用cout輸出了.

轉(zhuǎn)載于:https://www.cnblogs.com/MMLoveMeMM/articles/3089192.html

總結(jié)

以上是生活随笔為你收集整理的CTime类小结1的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。