VS2010 MFC 获取当前系统时间
在MFC状态栏显示时间

显示时分秒1>在Resource标签String Table中添加New String,在此定义为ID_INDICATOR_CLOCK,将其Caption设为00: 00: 00(注意此处00与:之间不能有其他字符或符号).注意,本步操作时有两种方式:一种建立新的String Table,并添加String;另一种则在原有String Table中添加。
当用后一种方式操作时,若完成后,时钟栏并不显示时间,则需要将此New String在String Table中对应的V alue值加1(可在resource.h中修改)。
2>在MainFrm.cpp中的indicators声明出添加ID_INDICA TOR_CLOCK,代码如下: …static UINT indicators[] ={ID_SEPARATOR,ID_INDICATOR_CLOCK, //这里排列影响显示顺序,s所要添加的String的IDID_INDICATOR_CAPS,ID_INDICATOR_NUM,ID_INDICATOR_SCRL,};…这一步中ID_INDICA TOR_CLOCK的插入位置将影响时间窗格在状态栏中的显示位置。
3>安装定时器:在MainFrm.cpp中OnCreate函数处添加代码如下:int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct){……SetTimer(1,1000,NULL);//安装定时器,并将其时间间隔设为1000毫秒return 0;}4)编写时间处理函数:利用ClassWizard为CMainFrame类加入WM_TIMER的消息处理函数OnTimer,并添加代码如下:void CMainFrame::OnTimer(UINT nIDEvent){CTime time;time=CTime::GetCurrentTime();//得到当前时间CString s=time.Format("%H:%M:%S");//转换时间格式m_wndStatusBar.SetPaneText(m_mandToIndex(ID_INDICA TOR _CLOCK),s); //显示时钟CFrameWnd::OnTimer(nIDEvent);}5)销毁定时器:利用ClassWizard为CMainFrame类加入WM_CLOSE的消息处理函数OnClose,并添加代码如下:void CMainFrame::OnClose(){KillTimer(1);//销毁定时器CFrameWnd::OnClose();}最后,编译运行。
Visual_C++基于对话框的MFC应用程序【简单时钟】

1.1创建对话框的应用程序1.使用AppWizard创建应用程序框架首先,创建一个对话框应用程序,其工程文件名为:ch1.dsp。
具体步骤如下:(1)启动Visual C++6.0,在File菜单中选择new菜单项;(2)在new对话框的Project页中选择MFC AppWizard(exe)选项,在Project name框中输入:ch1,并在Location框中指定希望的目录路径,编译系统生成的各种文件将会存放在该目录下,然后点击[OK]按钮(3)MFC AppWizard-Step1中选择Dialog based选项,MFC AppWizard-Step2到MFC AppWizard-Step4中取默认选项;(4)进入VC对话框设计界面后,选中[TODO:在这里设置对话控制。
]静态框并按del键删除该框,选中[取消]按钮并按del键删除该按钮;(5)将[确认]按钮拖曳到对话框的下方中间。
生成的对话框设计窗口(如图1-1所示)。
图1-12.向类中添加系统消息响应函数Windows应用程序的采用事件触发、消息驱动机制和大量的消息响应函数构成了应用程序的主体。
本示例需要用到两个消息响应函数OnCtlColor()和OnTimer(),前者响应窗口消息:WM_CTLCOLOR,后者响应窗口消息:WM_TIMER。
关于这两个函数的功能和用法暂且略过,留待后面小节再叙。
这里先介绍响应函数加载的方法。
在CCh1Dlg类中添加OnCtlColor()函数的操作方法如下:(1)打开类向导(MFC ClassWizard)窗口,选择Message Maps 页;(2)选择工程、类和对象标识。
在Message Maps页的Project、Class name、Object Ids框中分别选择:ch1、CCh1Dlg、CCh1Dlg;(3)添加响应函数。
在Message Maps页的Messages框中选中并双击窗口消息:WM_CTLCOLOR,此时,消息WM_CTLCOLOR 的响应函数OnCtlColor()被添加到类向导底部Member Functions框中。
C#获取当前系统时间

C#获取当前系统时间2010-01-02 16:24--DateTime 数字型System.DateTimecurrentTime=new System.DateTime();取当前年月日时分秒 currentTime=System.DateTime.Now;取当前年 int 年=currentTime.Year;取当前月 int 月=currentTime.Month;取当前日 int 日=currentTime.Day;取当前时 int 时=currentTime.Hour;取当前分 int 分=currentTime.Minute;取当前秒 int 秒=currentTime.Second;取当前毫秒 int毫秒=lisecond; (变量可用中文)取中文日期显示——年月日时分 stringstrY=currentTime.ToString("f"); //不显示秒取中文日期显示_年月 string strYM=currentTime.ToString("y");取中文日期显示_月日 string strMD=currentTime.ToString("m");取当前年月日,格式为:2003-9-23 stringstrYMD=currentTime.ToString("d");取当前时分,格式为:14:24 string strT=currentTime.ToString("t");DateTime.Now.ToString();//获取当前系统时间完整的日期和时间DateTime.Now.ToLongDateString();//只显示日期 xxxx年xx月xx日,一个是长日期DateTime.Now.ToShortDateString();//只显示日期 xxxx-xx-xx 一个是短日期//今天 DateTime.Now.Date.ToShortDateString();//昨天的 DateTime.Now.AddDays(-1).ToShortDateString();//明天的 DateTime.Now.AddDays(1).ToShortDateString();//本周(注意这里的每一周是从周日始至周六止)DateTime.Now.AddDays(Convert.ToDouble((0 -Convert.ToInt16(DateTime.Now.DayOfWeek)))).ToShortDateString(); DateTime.Now.AddDays(Convert.ToDouble((6 -Convert.ToInt16(DateTime.Now.DayOfWeek)))).ToShortDateString();//上周,上周就是本周再减去7天DateTime.Now.AddDays(Convert.ToDouble((0 -Convert.ToInt16(DateTime.Now.DayOfWeek))) - 7).ToShortDateString();DateTime.Now.AddDays(Convert.ToDouble((6 -Convert.ToInt16(DateTime.Now.DayOfWeek))) - 7).ToShortDateString();//下周本周再加上7天DateTime.Now.AddDays(Convert.ToDouble((0 -Convert.ToInt16(DateTime.Now.DayOfWeek))) + 7).ToShortDateString(); DateTime.Now.AddDays(Convert.ToDouble((6 -Convert.ToInt16(DateTime.Now.DayOfWeek))) + 7).ToShortDateString(); //本月本月的第一天是1号,最后一天就是下个月一号再减一天。
如何获取系统时间与日期

如何获取系统时间与日期1、t m结构在标准C/C++中,我们可通过tm结构来获得日期和时间,tm结构在time.h中的定义如下:#ifndef _TM_DEFINEDstruct tm {int tm_sec; /* 秒–取值区间为[0,59] */int tm_min; /* 分- 取值区间为[0,59] */int tm_hour; /* 时- 取值区间为[0,23] */int tm_mday; /* 一个月中的日期- 取值区间为[1,31] */int tm_mon; /* 月份(从一月开始,0代表一月)- 取值区间为[0,11] */int tm_year; /* 年份,其值等于实际年份减去1900 */int tm_wday; /* 星期–取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推*/int tm_yday; /* 从每年的1月1日开始的天数–取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推*/ int tm_isdst; /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。
不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。
*/};#define _TM_DEFINED#endif2、time_t数据类型日历时间(Calendar Time)是通过time_t数据类型来表示的,用time_t表示的时间(日历时间)是从一个时间点(例如:1970年1月1日0时0分0秒)到此时的秒数。
在time.h中,我们也可以看到time_t是一个长整型数:#ifndef _TIME_T_DEFINEDtypedef long time_t; /* 时间值*/#define _TIME_T_DEFINED /* 避免重复定义time_t */#endif大家可能会产生疑问:既然time_t实际上是长整型,到未来的某一天,从一个时间点(一般是1970年1月1日0时0分0秒)到那时的秒数(即日历时间)超出了长整形所能表示的数的范围怎么办?对time_t数据类型的值来说,它所表示的时间不能晚于2038年1月18日19时14分07秒。
c 如何获取系统时间

---------------------------------------------------------------最新资料推荐------------------------------------------------------c 如何获取系统时间//方案优点:仅使用 C 标准库;缺点:只能精确到秒级 #include time. h #include stdio. h int main( void ) { time_t t = time(0) ; char tmp[64]; strftime( tmp, sizeof(tmp) , %Y/%m/%d %X %A 本年第%j天 %z, localtime(t) ) ; puts( tmp ) ; return 0; } size_t strftime(char *strDest, size_t maxsize, const char *format, const struct tm *timeptr) ; 根据格式字符串生成字符串。
struct tm *localtime(const time_t *timer) ; 取得当地时间, localtime 获取的结果由结构 tm 返回返回的字符串可以依下列的格式而定:%a 星期几的缩写。
Eg: Tue %A 星期几的全名。
Eg: Tuesday %b 月份名称的缩写。
%B 月份名称的全名。
%c 本地端日期时间较佳表示字符串。
%d 用数字表示本月的第几天 (范围为 00 至 31) 。
日期 %H 用 24 小时制数字表示小时数 (范围为 00 至23) 。
%I 用 12 小时制数字表示小时数 (范围为 01 至 12) 。
1 / 8%j 以数字表示当年度的第几天 (范围为 001 至 366) 。
%m 月份的数字 (范围由 1 至 12) 。
%M 分钟。
%p 以‘ ‘ AM’ ‘ 或‘ ‘ PM’ ‘ 表示本地端时间。
C语言获取当前系统时间的几种方式

C语言中如何获取时间?精度如何?1 使用time_t time( time_t * timer ) 精确到秒2 使用clock_t clock() 得到的是CPU时间精确到1/CLOCKS_PER_SEC秒3 计算时间差使用double difftime( time_t timer1, time_t timer0 )4 使用DWORD GetTickCount() 精确到毫秒5 如果使用MFC的CTime类,可以用CTime::GetCurrentTime() 精确到秒6 要获取高精度时间,可以使用BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency)获取系统的计数器的频率BOOL QueryPerformanceCounter(LARGE_INTEGER *lpPerformanceCount)获取计数器的值然后用两次计数器的差除以Frequency就得到时间。
7 Multimedia Timer FunctionsThe following functions are used with multimedia timers.timeBeginPeriod/timeEndPeriod/timeGetDevCaps/timeGetSystemTime//*********************************************************************//用标准C实现获取当前系统时间的函数一.time()函数time(&rawtime)函数获取当前时间距1970年1月1日的秒数,以秒计数单位,存于rawtime 中。
#include "time.h"void main (){time_t rawtime;struct tm * timeinfo;time ( &rawtime );timeinfo = localtime ( &rawtime );printf ( "\007The current date/time is: %s", asctime (timeinfo) );exit(0);}=================#include -- 必须的时间函数头文件time_t -- 时间类型(time.h 定义是typedef long time_t; 追根溯源,time_t是long)struct tm -- 时间结构,time.h 定义如下: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;time ( &rawtime ); -- 获取时间,以秒计,从1970年1月一日起算,存于rawtimelocaltime ( &rawtime ); -- 转为当地时间,tm 时间结构asctime ()-- 转为标准ASCII时间格式:星期月日时:分:秒年-----------------------------------------------------------------------------二.clock()函数,用clock()函数,得到系统启动以后的毫秒级时间,然后除以CLOCKS_PER_SEC,就可以换成“秒”,标准c函数。
CC++获取当前系统时间

CC++获取当前系统时间个⼈觉得第⼆种还是⽐较实⽤的,⽽且也是最常⽤的~不过当计算算法耗时的时候,不要忘记second,不能只要⽤Milliseconds来减,不然后出现负值,若是算法耗时太长就得⽤minutes啦。
再不然,就hours……//⽅案— 优点:仅使⽤C标准库;缺点:只能精确到秒级#include <time.h>#include <stdio.h>int main( void ){time_t t = time(0);char tmp[64];strftime( tmp, sizeof(tmp), "%Y/%m/%d %X %A 本年第%j天 %z",localtime(&t) );puts( tmp );return 0;}size_t strftime(char *strDest, size_t maxsize, const char *format, const struct tm *timeptr);根据格式字符串⽣成字符串。
struct tm *localtime(const time_t *timer);取得当地时间,localtime获取的结果由结构tm返回返回的字符串可以依下列的格式⽽定:%a 星期⼏的缩写。
Eg:Tue%A 星期⼏的全名。
Eg: Tuesday%b ⽉份名称的缩写。
%B ⽉份名称的全名。
%c 本地端⽇期时间较佳表⽰字符串。
%d ⽤数字表⽰本⽉的第⼏天 (范围为 00 ⾄ 31)。
⽇期%H ⽤ 24 ⼩时制数字表⽰⼩时数 (范围为 00 ⾄ 23)。
%I ⽤ 12 ⼩时制数字表⽰⼩时数 (范围为 01 ⾄ 12)。
%j 以数字表⽰当年度的第⼏天 (范围为 001 ⾄ 366)。
%m ⽉份的数字 (范围由 1 ⾄ 12)。
%M 分钟。
%p 以 ''AM'' 或 ''PM'' 表⽰本地端时间。
MFC使用datetimepicker获取时间

MFC使用datetimepicker获取时间CTime time = CTime::GetCurrentTime();int year = time.GetYear(); //返回年int mouth = time.GetMouth(); //返回月份int date = time.GetDays(); // 返回日数int hour = time.GetHours(); // 返回小时数(-23至23之间)int min = time.GetMinutes(); // 返回分钟数(-59至59之间)int sec = time.GetSeconds(); // 返回秒数(-59至59之间)以下是转载的:CTime以及其它时间差一、DateTimePicker控件引用一个DateTimePicker控件,关联变量m_date为DateTimeCtrl类型,然后在响应事件中加入如下代码:CTime tm;m_date.GetTime(tm);CString strDate=tm.Format("%Y-%m-%d");就可以获取了...但是不知为何这个还和Vc的版本问题有关,开始时候我用的版本总是出错,或者srtDate为空,或者不是用户选择的日期,后来换了一个VC版本就能得到正确的数据了...另外如果关联一个CTime类型的变量也能解决上面的问题,但是初始化的日期是1970-01-01而上面方法中初始化的日期是当前日期...所以根据用户需要的设定可以选择任何一种方法进行解决...========================实际上,只需要添加 datetimepicker控件的下面这样一个响应函数就可以解决。
void C****Dlg::OnKillfocusDatetimepicker1(NMHDR* pNMHDR, LRESULT* pResult){// TODO: Add your control notification handler code hereUpdateData(TRUE);*pResult = 0;}========================二、CTimeSpan获取时间差要获取两个时间差,如两个CTime的时间差,可以使用MFC中的CTimeSpan类。