vc 时间控件CDateTimeCtrl的使用

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

strDataSource = L"2006-01-12 17:44:01";
CTime MakeDate(std::wstring strDataSource)
{
     if(strDataSource.length() < 10)
          return CTime();
     int nYear = _wtoi(strDataSource.substr(0, 4).c_str());
     int nMonth = _wtoi(strDataSource.substr(5, 2).c_str());
     int nDay = _wtoi(strDataSource.substr(8, 2).c_str());
     if(nYear < 1900 || 
            nMonth < 1 || 
            nMonth > 12 ||
            nDay < 1 || 
            nDay > 31)
            return CTime();
     return CTime(nYear, nMonth, nDay, 0, 0, 0);
}
 
CTime   t(   1999,   3,   19,   22,   15,   0   );   //   10:15PM   March   19,   1999

CTime   tm;
tm=CTime::GetCurrentTime();
m_time.SetTime(&tm);
m_time.SetFormat("yyyy-MM-dd   HH:mm:ss");

((CDateTimeCtrl*)GetDlgItem(ID_CTRL))->SetTime(&MakeDate(m_strBeginTime));

 

 

///////////////////////////////////////////////////////////

 //产生"YYYY-MM-DD hh:mm:ss"格式的字符串。
 time_t t = time(0);
 char s[32];
 strftime(s, sizeof(s),"%Y-%m-%d %H:%M:%S", localtime(&t));

 

 

 

%a

Abbreviated weekday name

%A

Full weekday name

%b

Abbreviated month name

%B

Full month name

%c

Date and time representation appropriate for locale

%d

Day of month as decimal number (01 – 31)

%H

Hour in 24-hour format (00 – 23)

%I

Hour in 12-hour format (01 – 12)

%j

Day of year as decimal number (001 – 366)

%m

Month as decimal number (01 – 12)

%M

Minute as decimal number (00 – 59)

%p

Current locale's A.M./P.M. indicator for 12-hour clock

%S

Second as decimal number (00 – 59)

%U

Week of year as decimal number, with Sunday as first day of week (00 – 53)

%w

Weekday as decimal number (0 – 6; Sunday is 0)

%W

Week of year as decimal number, with Monday as first day of week (00 – 53)

%x

Date representation for current locale

%X

Time representation for current locale

%y

Year without century, as decimal number (00 – 99)

%Y

Year with century, as decimal number

%z, %Z

Either the time-zone name or time zone abbreviation, depending on registry settings; no characters if time zone is unknown

%%

Percent sign

ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_vccrt/html/6330ff20-4729-4c4a-82af-932915d893ea.htm

 

 

 

 

 

 

 

 

 

 

 

 

 

包含文件:
#ifndef __TIME_T
#define __TIME_T     /* 避免重复定义 time_t */
typedef long     time_t;    /* 时间值time_t 为长整型的别名*/
#endif
 
既然time_t实际上是长整型,到未来的某一天,从一个时间点(一般是1970年1月1日0时0分0秒)到那时的秒数(即日历时间)超出了长整形所能表示的数的范围怎么办?对time_t数据类型的值来说,它所表示的时间不能晚于2038年1月18日19时14分07秒。为了能够表示更久远的时间,一些编译器厂商引入了64位甚至更长的整形数来保存日历时间。比如微软在Visual C++中采用了__time64_t数据类型来保存日历时间,并通过_time64()函数来获得日历时间(而不是通过使用32位字的time()函数),这样就可以通过该数据类型保存3001年1月1日0时0分0秒(不包括该时间点)之前的时间。
 
在time.h头文件中,我们还可以看到一些函数,它们都是以time_t为参数类型或返回值类型的函数:
 
double difftime(time_t time1, time_t time0);
time_t mktime(struct tm * timeptr);
time_t time(time_t * timer);
char * asctime(const struct tm * timeptr);
char * ctime(const time_t *timer);
 
此外,time.h还提供了两种不同的函数将日历时间(一个用time_t表示的整数)转换为我们平时看到的把年月日时分秒分开显示的时间格式tm:
 
struct tm * gmtime(const time_t *timer);                                        
struct tm * localtime(const time_t * timer);
 
通过查阅MSDN,我们可以知道Microsoft C/C++ 7.0中时间点的值(time_t对象的值)是从1899年12月31日0时0分0秒到该时间点所经过的秒数,而其它各种版本的Microsoft C/C++和所有不同版本的Visual C++都是计算的从1970年1月1日0时0分0秒到该时间点所经过的秒数。

struct tm {
  int  tm_sec;
  int  tm_min;
  int  tm_hour;
  int  tm_mday;
  int  tm_mon;
  int  tm_year;
  int  tm_wday;
  int  tm_yday;
  int  tm_isdst;
};


#include "stdafx.h"
#include <time.h>

int _tmain(int argc, _TCHAR* argv[])
{
 time_t t;
 time(&t);
 tm* tt = localtime(&t);
 int i;
 return 0;
}

新学期领福利!购实物周边送年卡会员! T恤、键盘、双肩包等周边任选!还能解锁资源下载、VIP文章等多重会员权益! 阅读详情

相关推荐

MFC -- Date Time Picker 控件使用

MFC -- Date Time Picker 控件使用

yudiandian2014的专栏 3110

VC++时间控件 时间

VC++编程技术连载---VC++日历控件使用 2007-06-22 08:12:41 VC++编程技术连载---VC++日历控件使用 一、有关日历控件的介绍 Win32 API提供了一个显示...

VC/MFC使用日期控件设置、获取日期时间信息

VC/MFC 使用 日期控件 设置、获取 日期时间信息

CDateTimeCtrl 用法总结

一、时间的比较       CDateTimeCtrl m_OutTime;       CTime m_Time1;   //显示年月日       CDateTimeCtrl m_OutHour;       CTime m_Time2; //显示时分秒       CDateTimeCtrl m_BackTime;       CTime m_Time3; //年月日

angellove156的专栏 1万+

CDateTimeCtrl使用说明

 1.CDateTimeCtrl 格式  CDateTimeCtrl 设定为“ShowNone” 为 True 2.Format 初始化   CDateTimeCtrl m_Date1;  m_Date1.SetFormat(_T("yyyy'- 'MM'- 'dd"));<br /> 3.Format初始化选择确认框为空   CDateTimeCtrl m_Date1;   ::SendMessage( this->m_Date1.m_hWnd,(UINT)DTM_SETSYSTEMTIME,GDT_NO

zmq5411的专栏 1万+

日期、时间控件使用

CTime time; //m_DateCtrl.GetTime(time); m_datatime.GetTime(time); CString strTime = time.Format("%Y-%m-%d") ;    //获取到的为日期 如:2014-03-05   CString strTime1=time.Format("%H:%M:%S")  ;   //获取到的为时间 如:

ilikehigame的专栏 854

如何让CDateTimeCtrl同时显示日期和时间呢?

如何让CDateTimeCtrl同时显示日期和时间呢?楼主hundker()2006-10-30 17:26:38 在 VC/MFC / 基础类 提问如何让CDateTimeCtrl同时显示日期和时间呢?问题点数:20、回复次数:13Top1 楼neosu(CrazyNeo)回复于 2006-10-30 17:29:59 得分 0我一般用两个并排.    

skyremember的专栏 5008

VC控件DateTimePicker使用方法

使用DateTimePicker控件一般是获 取其时间替代手工输入带来的不便,而DateTimePicker控件既可以获取日期(2010-03-05)也可以获取时间(16:27:33),要获 取日期只需要更改控件属性的格式为长日期或短日期,要获取时间则将格式更改为时间即可!          在添加控件变量时,选择其变量类型为CDateTimeCtrl(类如m_DateCtrl);在程序中定

qq_31209383的博客 1211

VC2005中DateTimePicker控件使用

VC2005中DateTimePicker控件使用 1 显示年月日时分秒的当前时间CDateTimeCtrl m_DateItmeCtrl_Time;m_DateItmeCtrl_Time.SetFormat(_T("yyyy-MM-dd HH:mm:ss"));CTime TimeTemp=TimeTemp.GetCurrentTime();m_DateItmeCtrl_Time.Se

二分掌柜的 2933

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

获取当前的日期、时间并格式化输出 框1,框2,框3:Static Text控件,修改ID m_strDate:关联框1,CString数据类型(Value类别) m_strTime:关联框2,CString数据类型(Value类别) m_strDateTime:关联框3,CString数据类型(Value类别) 获取按钮消息响应函数: void CTest17Get

Stone_Sky 1万+

VCCDateTimeCtrl使用说明

1.CDateTimeCtrl 格式   CDateTimeCtrl 设定为“ShowNone” 为 True   2.Format 初始化    CDateTimeCtrl m_Date1;   m_Date1.SetFormat(_T("yyyy'- 'MM'- 'dd"));   3.Format初始化选择确认框为空    CDateTimeCtrl m_Date1;

Jackyguo1992的专栏 5450

VC:其他控件(CProgressCtrl、CScrollBar、CDateTimeCtrl、CMonthCalCtrl)

1、进度条 m_progressCtrl.SetRange(0,100); for(int i=0;i<100;i++) { m_progressCtrl.SetPos(i); Sleep(100); } AfxMessageBox("进度条到...

acass424022的博客 189

VC DATETIMEPICKER 时间控件使用

CDateTimeCtrl* pCtrl = (CDateTimeCtrl*) GetDlgItem(IDC_DATETIMEPICKER1);   ASSERT(pCtrl != NULL);   // get as a CTime   CTime timeTime;   DWORD dwResult = pCtrl->GetTime(timeTime);     if (dwRes

丰空岛主(Vega Prime,Android,LabWindows,ThreeJS,Python,OpenCV) 1114

vc 中添加 时间控件,尤其是小时分钟控件

Project -》Add to Project 插入 Microsoft Date and Time Picker Control 控件然后 Controls里面就会多出一个控件来,拉一个到对话框中,  其ID为 IDC_DATETIMEPICKER1然后设置其格式。。。下面是参考的 http://topic.csdn.net/u/20080315/12/AE6C4745-AF7B-4BBD-AA9F-D6F299DA2367.htmlExamplevoid CDatesDlg::OnButton2()

为了理想而奋斗 2605

VC控件DateTimePicker使用方法 ,获取日期和时间

使用DateTimePicker控件一般是获取其时间替代手工输入带来的不便,而 DateTimePicker控件既可以获取日期(2010-03-05)也可以获取时间(16:27:33),要获取日期只需要更改控件属性的格式为长日期或短日期,要获取时间则将格式更改为时间即可!          在添加控件变量时,选择其变量类型为CDateTimeCtrl(类如m_DateCtrl);在程序中定义CT

MOKA 6038
上一篇: VC中Combo Box的使用小结
下一篇: 手机号码段说明
小大小丑
博客等级 码龄18年 483粉丝 425原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值