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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

VC控件DateTimePicker使用方法及其相关

發布時間:2025/3/12 c/c++ 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VC控件DateTimePicker使用方法及其相关 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

獲取當前的日期、時間并格式化輸出


框1,框2,框3:Static Text控件,修改ID

m_strDate:關聯框1,CString數據類型(Value類別)
m_strTime:關聯框2,CString數據類型(Value類別)
m_strDateTime:關聯框3,CString數據類型(Value類別)

獲取按鈕消息響應函數:

void CTest17GetTimeDlg::OnGetTime()
{
// TODO: 在此添加控件通知處理程序代碼
//UpdateData(true);
CTime m_time;
m_time=CTime::GetCurrentTime(); //獲取當前時間日期
m_strDate=m_time.Format(_T("%x")); //格式化日期
m_strTime=m_time.Format(_T("%X")); //格式化時間
m_strDateTime=m_time.Format(_T("%Y-%m-%d %H:%M:%S %A")); //格式化日期時間
UpdateData(false);
}

注:
CTime類表示的是絕對時間,即基于格林威治平均時間(GMT);CTimeSpan則表示的是時間間隔。
GetCurrentTime函數可以獲取當前的日期、時間;Format函數則可以將時間、日期格式化。

Format函數的格式符號及其意義:
%a: 簡寫的星期名,例如Sat代表Saturday
%A: 全寫星期(英文),如Friday
%b: 簡寫的月名,例如Mar代表March
%B: 月份(全寫英文),如October
%c: 月/日/年 時:分:秒,如1/3/2012 21:19:11
%d: 月中的天數,值為01~31
%H: 24小時格式的小時數,值為00~23
%I: 通常的12小時格式的小時數,值為01~12
%j: 一年當中的第幾天,值為001~336
%m: 月數,值為01~12
%M: 分鐘數,值為00~59
%p: 由12小時格式的時鐘指示的am/pm(上午/下午)
%S: 秒數,值為00~59
%U: 年中的周數,值為00~53,以周日為一周的第一天
%w: 周中的日期數,值為0~6,其中0為周日
%W: 年中的周數,值為00~53,以周一為一周的第一天
%x: 月/日/年,%c的前半段
%X: 時/分/秒,%c的后半段
%y: 不帶年代前綴的年數,值為00~99
%Y: 年份(帶世紀,如2006)
%z: 簡寫的時區名稱
%Z: 時區名稱的全稱,如果時區未知,此字符為空,如“中國標準時間”

==================================================================

來源:http://www.cnblogs.com/52yixin/articles/2111299.html

使用DateTimePicker控件一般是獲 取其時間替代手工輸入帶來的不便,而DateTimePicker控件既可以獲取日期(2010-03-05)也可以獲取時間(16:27:33),要獲 取日期只需要更改控件屬性的格式為長日期或短日期,要獲取時間則將格式更改為時間即可!

???????? 在添加控件變量時,選擇其變量類型為CDateTimeCtrl(類如m_DateCtrl);在程序中定義CTime對象用來保存獲取的時間,然后可以將其轉換為CString類型;具體實現:

[cpp] view plain copy print?
  • CTime?time;??
  • ????????m_DateCtrl.GetTime(time);??
  • ????????CString?strTime=time.Format("%Y-%m-%d")?????//獲取到的為日期?如:2010-03-05??
  • ???
  • ????????CTime?time;??
  • ????????m_DateCtrl.GetTime(time);??
  • ????????CString?strTime=time.Format("%H:%M:%S")?????//獲取到的為時間?如:16:27:33??
  • CTime time;m_DateCtrl.GetTime(time);CString strTime=time.Format("%Y-%m-%d") //獲取到的為日期 如:2010-03-05CTime time;m_DateCtrl.GetTime(time);CString strTime=time.Format("%H:%M:%S") //獲取到的為時間 如:16:27:33

    VC2005中DateTimePicker控件的使用

    [cpp] view plain copy print?
  • 1?顯示年月日時分秒的當前時間??
  • ?CDateTimeCtrl?m_DateItmeCtrl_Time;??
  • ?m_DateItmeCtrl_Time.SetFormat(_T("yyyy-MM-dd?HH:mm:ss"));??
  • ?CTime?TimeTemp=TimeTemp.GetCurrentTime();??
  • ?m_DateItmeCtrl_Time.SetTime(&TimeTemp);??
  • ???
  • ?其中HH表示24小時制,hh表示12小時制??
  • ??2?如果聲明一個控件類型為CTime的變量,那么時間將顯示1970-01-01??08:00:00.??
  • ???
  • ??3將DateTimePicker控件聲明變量類型為COleDateTime??
  • ?COleDateTime轉CString??
  • ?CString?strTime;??
  • ?COleDateTime???dtTime;????
  • ?strTime?=dtTime.Format(_T("%Y-%m-%d?%H:%M:%S"));??
  • 1 顯示年月日時分秒的當前時間CDateTimeCtrl m_DateItmeCtrl_Time;m_DateItmeCtrl_Time.SetFormat(_T("yyyy-MM-dd HH:mm:ss"));CTime TimeTemp=TimeTemp.GetCurrentTime();m_DateItmeCtrl_Time.SetTime(&TimeTemp);其中HH表示24小時制,hh表示12小時制2 如果聲明一個控件類型為CTime的變量,那么時間將顯示1970-01-01 08:00:00.3將DateTimePicker控件聲明變量類型為COleDateTimeCOleDateTime轉CStringCString strTime;COleDateTime dtTime; strTime =dtTime.Format(_T("%Y-%m-%d %H:%M:%S"));


    4 CString轉COleDateTime(因為VS2005時間日期控件關聯的Value變量默認是COleDateTime類型)

    ?

    [cpp] view plain copy print?
  • 1?CString?strTime?=_T("2009-08-11?11:22:33");??
  • 2?COleVariant?VariantTime;??
  • 3?VariantTime?=?strTime;??
  • 4?VariantTime.ChangeType(VT_DATE);??
  • 5?COleDateTime?DataTime?=?VariantTime;??
  • 1 CString strTime =_T("2009-08-11 11:22:33"); 2 COleVariant VariantTime; 3 VariantTime = strTime; 4 VariantTime.ChangeType(VT_DATE); 5 COleDateTime DataTime = VariantTime;

    SetTime時 參數需要為指針

    [cpp] view plain copy print?
  • m_ctrlMachineDeliveryDate.SetTime(&CTime::GetCurrentTime());?//將控件顯示當前日期??
  • ???m_ctrlMachineInstallDate.SetTime(&CTime::GetCurrentTime());??
  • ???
  • ????
  • ???
  • ??CTime?tDeliveryDate;??
  • ??m_ctrlMachineDeliveryDate.GetTime(tDeliveryDate);?//獲取發貨日期??
  • ??pMachineInfoSet->m_MACHINE_DELIVERYDATE?=?tDeliveryDate;???
  • ???
  • ????
  • ???
  • ???CTime?tDeliveryDate;??
  • ???tDeliveryDate?=?pMachineInfoSet->m_MACHINE_DELIVERYDATE;?//獲取記錄中的日期??
  • ???m_ctrlMachineDeliveryDate.SetTime(&tDeliveryDate);???//將記錄中的日期賦值到DateTime控件中顯示??
  • m_ctrlMachineDeliveryDate.SetTime(&CTime::GetCurrentTime()); //將控件顯示當前日期m_ctrlMachineInstallDate.SetTime(&CTime::GetCurrentTime());CTime tDeliveryDate;m_ctrlMachineDeliveryDate.GetTime(tDeliveryDate); //獲取發貨日期pMachineInfoSet->m_MACHINE_DELIVERYDATE = tDeliveryDate; CTime tDeliveryDate;tDeliveryDate = pMachineInfoSet->m_MACHINE_DELIVERYDATE; //獲取記錄中的日期m_ctrlMachineDeliveryDate.SetTime(&tDeliveryDate); //將記錄中的日期賦值到DateTime控件中顯示


    // 設定時間日期控件允許選擇的范圍

    [cpp] view plain copy print?
  • CTime?tCurrentTime=?CTime::GetCurrentTime();??
  • ??CTimeSpan?timespanOneMonth(30,0,0,0);?//這里設置為當前日期推后30天??
  • ??CTime?tEndTime?=?tCurrentTime?+timespanOneMonth;??
  • ??m_ctrlADTipsDaysDate.SetRange(&tCurrentTime,&tEndTime);??
  • ??/*?
  • ??m_dtcTm:這個是DATE?TIME?PICKER控件變量?
  • ??CTime?begin_tm(1970,1,1,8,0,0),end_tm(2038,1,19,3,14,7);?
  • ??m_dtcTm.SetRange(&begin_tm,&end_tm);?
  • ??m_tmClock=CTime::GetCurrentTime();//設置初始值為當前時間?
  • ??m_dtcTm.SetTime(&m_tmClock);??
  • ??//m_dtcTm.SetFormat("yyyy-MM-dd?HH'時'mm'分'");?//設置字符串格式?
  • ??m_dtcTm.SetFormat("yyyy-MM-dd?HH:mm:ss");?
  • ??*/??
  • CTime tCurrentTime= CTime::GetCurrentTime();CTimeSpan timespanOneMonth(30,0,0,0); //這里設置為當前日期推后30天CTime tEndTime = tCurrentTime +timespanOneMonth;m_ctrlADTipsDaysDate.SetRange(&tCurrentTime,&tEndTime);/*m_dtcTm:這個是DATE TIME PICKER控件變量CTime begin_tm(1970,1,1,8,0,0),end_tm(2038,1,19,3,14,7);m_dtcTm.SetRange(&begin_tm,&end_tm);m_tmClock=CTime::GetCurrentTime();//設置初始值為當前時間m_dtcTm.SetTime(&m_tmClock); //m_dtcTm.SetFormat("yyyy-MM-dd HH'時'mm'分'"); //設置字符串格式m_dtcTm.SetFormat("yyyy-MM-dd HH:mm:ss");*/


    ===================================CString 與 CTime 的相互轉化=============================================


    C++中,CTime 與 CString轉換<轉>

    C++中,CTime 與? CString轉換
    CTime m_StartTime1 = CTime::GetCurrentTime();
    CString csStartTime = m_StartTime1.Format( "%Y%m%d%H%M%S" );

    使用sprintf及sscanf函數進行CString與CTime之間的轉換

    一.將CString轉為CTime的幾種方法

    CString?? timestr?? =?? "2000年04月05日";??
    ? int?? a,b,c?? ;??
    ? sscanf(timestr.GetBuffer(timestr.GetLength()),"%d年%d月%d日",&a,&b,&c);??
    ? CTime?? time(a,b,c,0,0,0);????


    --------or - ---------------------

    CString?? s("2001-8-29?? 19:06:23");??
    ? int?? nYear,?? nMonth,?? nDate,?? nHour,?? nMin,?? nSec;??
    ? sscanf(s,?? "%d-%d-%d?? %d:%d:%d",?? &nYear,?? &nMonth,?? &nDate,?? &nHour,?? &nMin,?? &nSec);??
    ? CTime?? t(nYear,?? nMonth,?? nDate,?? nHour,?? nMin,?? nSec);

    ---- or ------------------------
    CString?? timestr?? =?? "2000年04月05日";??
    ? int?? year,month,day;??
    ? BYTE?? tt[5];??
    ? //get?? year??
    ? memset(tt,?? 0,?? sizeof(tt));??
    ? tt[0]?? =?? timestr[0];??
    ? tt[1]?? =?? timestr[1];??
    ? tt[2]?? =?? timestr[2];??
    ? tt[3]?? =?? timestr[3];??
    ? year=?? atoi((char?? *)tt);??
    ???
    ? //get?? month??
    ? memset(tt,?? 0,?? sizeof(tt));??
    ? tt[0]?? =?? timestr[6];??
    ? tt[1]?? =?? timestr[7];??
    ? month?? =?? atoi((char?? *)tt);??
    ???
    ? //get?? day??
    ? memset(tt,?? 0,?? sizeof(tt));??
    ? tt[0]?? =?? timestr[10];??
    ? tt[1]?? =?? timestr[11];??
    ???
    ? CTime?? time(year,month,day,0,0,0);

    從上面來看,很明顯使用sscanf()函數的優勢.

    二.將CTIme轉換為CString的方法:

    CTime? tmSCan = CTime::GetCurrentTime();

    CString szTime = tmScan.Format("'%Y-%m-%d %H:%M:%S'");

    這樣得到的日期時間字符串就是以"2006-11-27 23:30:59"的格式.這是不是很方便呢?

    //取得CTime中的日期
    CString cstrDate = tmScan.Format("%Y-%m-%d");

    //取得CTime中的時間
    CString cstrTime = tmScan.Format("%H:%M-%S");

    ????????? sprintf還有個不錯的表妹:strftime,專門用于格式化時間字符串的,用法跟她表哥很像,也是一大堆格式控制符,只是畢竟小姑娘家心細,她還要調用者指定緩沖區的最大長度,可能是為了在出現問題時可以推卸責任吧。這里舉個例子:

    更多更好的sprintf()函數說明參考:《spirntf,你知道多少?

    http://blog.csdn.net/steedhorse/archive/2005/03/25/330206.aspx

    time_t t = time(0);

    ?????//產生"YYYY-MM-DD hh:mm:ss"格式的字符串。

    char s[32];

    strftime(s, sizeof(s), "%Y-%m-%d %H:%M:%S", localtime(&t));

    sprintf在MFC中也能找到他的知音:CString::Format,strftime在MFC中自然也有她的同道:CTime::Format,這一對由于從面向對象哪里得到了贊助,用以寫出的代碼更覺優雅

    ?

    與50位技術專家面對面20年技術見證,附贈技術全景圖

    總結

    以上是生活随笔為你收集整理的VC控件DateTimePicker使用方法及其相关的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 禁果av一区二区三区 | 日本一区二区在线看 | 中文字幕dvd | 大陆一级片 | 欧美激情一区二区三级高清视频 | 国产精品久久色 | 国产婷婷一区二区三区 | 天堂影视在线观看 | juliaann欧美二区三区 | 蜜桃久久一区二区三区 | 国产区精品视频 | 波多野结衣中文字幕在线 | 中国妇女做爰视频 | a亚洲精品 | 国产精品无码av无码 | 夜夜免费视频 | 97超碰超碰 | 黄色链接视频 | 精品国产亚洲av麻豆 | av免费不卡 | 亚洲视频一区在线播放 | 国产看黄网站 | 色妞视频| 精品在线视频免费 | 99爱视频 | 亚洲图片欧美另类 | 久久艹中文字幕 | 欧美乱子伦 | 亚洲成人黄色网 | 最新久久久 | 国产视频一区在线 | 黄色正能量网站 | 午夜久久电影 | 午夜视频在线观看视频 | 超碰人人人人人人人 | 免费黄色在线视频 | 亚洲永久精品ww.7491进入 | 羽月希奶水一区二区三区 | 日韩中文字幕观看 | 亚洲四区| 国产精品99视频 | 天堂男人在线 | 欧美精品一区二区三区四区五区 | 黑人激情视频 | 九九免费 | 欧美成人午夜剧场 | 欧美精品国产一区 | 人人干人人看 | 女人18毛片水真多 | 国产精品久久久999 www日本高清视频 | 国产美女裸体无遮挡免费视频 | 91性视频 | 狠狠干天天色 | 伊人色播 | 中国在线观看免费高清视频播放 | 亚洲另类图区 | 不卡视频在线播放 | 活大器粗np高h一女多夫 | 欧美三级又粗又硬 | 人人爱人人射 | 另类国产| 亚洲精品综合精品自拍 | 国产精品一区二区久久国产 | 午夜888 | 少妇搡bbbb搡bbbb | 天堂在线成人 | 天天伊人网 | 一级黄色片免费看 | 伊伊成人 | 不用播放器的av网站 | 在线观看欧美视频 | 91视频在线观看免费 | 毛片av在线| 91jk制服白丝超短裙大长腿 | 国产精品扒开做爽爽爽的视频 | 亚州av网 | 国产精品日日摸天天碰 | 黑人巨大精品欧美一区二区免费 | 久久综合加勒比 | av在线网址大全 | 女人下面喷水视频 | 全黄一级裸片视频 | 激情五月婷婷综合网 | 蜜桃视频在线观看污 | 国产黄大片在线观看画质优化 | 欧美色一区二区三区在线观看 | 国产精品美女网站 | 免费在线观看黄视频 | 欧美人成在线视频 | 久久99精品国产.久久久久 | 精品国产乱码久久久久久蜜柚 | 亚洲精品欧美激情 | 9l视频自拍蝌蚪9l视频 | 日韩大片免费观看 | 无码人妻丰满熟妇区毛片蜜桃精品 | 日韩欧美成人一区二区 | 亚洲va欧美va天堂v国产综合 | 97视频在线看 | 国产亚洲三级 |