1.使用CTime类(获取系统当前时间,精确到秒)

CString str;

//获取系统时间

CTime tm;

tm=CTime::GetCurrentTime();//获取系统日期

str=tm.Format(“现在时间是%Y年%m月%d日 %X”);

MessageBox(str,NULL,MB_OK);

a,从CTimet中提取年月日时分秒

CTime t = CTime::GetCurrentTime();

 int d=t.GetDay(); //获得几号

 int y=t.GetYear(); //获取年份

 int m=t.GetMonth(); //获取当前月份

 int h=t.GetHour(); //获取当前为几时

 int mm=t.GetMinute(); //获取分钟

 int s=t.GetSecond(); //获取秒

 int w=t.GetDayOfWeek(); //获取星期几,注意1为星期天,7为星期六

b,计算两段时间的差值,可以使用CTimeSpan类,具体使用方法如下:

CTime t1( 1, 3, 19, 22, 15, 0 );

CTime t = CTime::GetCurrentTime();

CTimeSpan span=t-t1; //计算当前系统时间与时间t1的间隔

int iDay=span.GetDays(); //获取这段时间间隔共有多少天

int iHour=span.GetTotalHours(); //获取总共有多少小时

int iMin=span.GetTotalMinutes();//获取总共有多少分钟

int iSec=span.GetTotalSeconds();//获取总共有多少秒

c,获得当前日期和时间,并可以转化为CString

CTime tm=CTime::GetCurrentTime();

CString str=tm.Format(“%Y-%m-%d”);//显示年月日

2.使用GetLocalTime:Windows API 函数,获取当地的当前系统日期和时间 (精确到毫秒)

 此函数会把获取的系统时间信息存储到SYSTEMTIME结构体里边

typedef struct _SYSTEMTIME

{

WORD wYear;//年

WORD wMonth;//月

WORD wDayOfWeek;//星期:0为星期日,1为星期一,2为星期二……

WORD wDay;//日

WORD wHour;//时

WORD wMinute;//分

WORD wSecond;//秒

WORD wMilliseconds;//毫秒

}SYSTEMTIME,*PSYSTEMTIME;

例:

SYSTEMTIME st;

CString strDate,strTime;

GetLocalTime(&st);

strDate.Format(“%4d-%2d-%2d”,st.wYear,st.wMonth,st.wDay);

strTime.Format(“%2d:%2d:%2d”,st.wHour,st.wMinute,st.wSecond) ;

AfxMessageBox(strDate);

AfxMessageBox(strTime);

3.使用GetTickCount:从操作系统启动到现在所经过(elapsed)的毫秒数,它的返回值是DWORD。(精确到毫秒)

//获取程序运行时间

long t1=GetTickCount();//程序段开始前取得系统运行时间(ms)

Sleep(500);

long t2=GetTickCount();();//程序段结束后取得系统运行时间(ms)

str.Format(“time:%dms”,t2-t1);//前后之差即 程序运行时间

AfxMessageBox(str);

//获取系统运行时间

long t=GetTickCount();

CString str,str1;

str1.Format(“系统已运行 %d时”,t/3600);

str=str1;

t%=3600;

str1.Format(“%d分”,t/60);

str+=str1;

t%=60;

str1.Format(“%d秒”,t/1);

str+=str1;

AfxMessageBox(str);

4.使用time_t time( time_t * timer ) : 仅使用C标准库(精确到秒)

得到从标准计时点(一般是1970年1月1日午夜)到当前时间的秒数

计算时间差:double difftime( time_t timer1, time_t timer0)

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” 表示本地端时间。

%S 秒数。

%U 数字表示为本年度的第几周,第一个星期由第一个周日开始。

%W 数字表示为本年度的第几周,第一个星期由第一个周一开始。

%w 用数字表示本周的第几天 ( 0 为周日)。

%x 不含时间的日期表示法。

%X 不含日期的时间表示法。 Eg: 15:26:30

%y 二位数字表示年份 (范围由 00 至 99)。

%Y 完整的年份数字表示,即四位数。 Eg:2008

%Z(%z) 时区或名称缩写。Eg:中国标准时间

%% % 字符。

含:年,月,日,周几,小时,分,秒,毫秒。[喝小酒的网摘]http://blog.const.net.cn/a/16370.htm

【VS开发】VC++ 获取系统时间、程序运行时间(精确到秒,毫秒)的五种方法的更多相关文章

  1. VC++ 获取系统时间、程序运行时间(精确到秒,毫秒)的五种方法

    1.使用CTime类(获取系统当前时间,精确到秒) CString str; //获取系统时间 CTime tm; tm=CTime::GetCurrentTime();//获取系统日期 str=tm ...

  2. Linux: Linux C 获取当前系统时间的时间戳(精确到秒、毫秒、微秒) gettimeofday

    说明 获取当前的时间的秒数和微秒数本方法需要用到 gettimeofday() 函数,该函数需要引入的头文件是  <sys/time.h>  . 函数说明 int gettimeofday ...

  3. VC++编程中获取系统时间

    <span style="white-space:pre"> </span>总结了在程序中如何获得系统时间的方法 void CGetSystenTimeDl ...

  4. vc 获取当前时间 (zhuan)

    vc 获取当前时间(2010-02-10 11:34:32) http://wenku.baidu.com/view/6ade96d049649b6648d7475e.html 1.使用CTime类 ...

  5. vc 获取当前时间

    1.使用CTime类 CString str; //获取系统时间 CTime tm; tm=CTime:: GetCurrentTime_r(); str=tm.Format("现在时间是% ...

  6. 用PHP获取系统时间时,时间比当前时间少8个小时

    自PHP5.0开始,用PHP获取系统时间时,时间比当前时间少8个小时.原因是PHP.ini中没有设置timezone时,PHP是使用的UTC时间,所以在中国时间要少8小时. 解决办法: 1.在PHP. ...

  7. C/C++获取系统时间

    C/C++获取系统时间需要使用Windows API,包含头文件"windows.h". 系统时间的数据类型为SYSTEMTIME,可以在winbase.h中查询到如下定义: ty ...

  8. c++ 怎样获取系统时间

    c++ 怎样获取系统时间 2008-04-28 15:34 //方案— 长处:仅使用C标准库:缺点:仅仅能精确到秒级 #include <time.h> #include <stdi ...

  9. Android获取系统时间的多种方法

    Android中获取系统时间有多种方法,可分为Java中Calendar类获取,java.util.date类实现,还有android中Time实现. 现总结如下: 方法一: ? 1 2 3 4 5 ...

随机推荐

  1. 牛客国庆集训派对Day6 && CCPC-WannaFly-Camp #1 F. kingdom(DP)

    题目链接:https://www.nowcoder.com/acm/contest/206/F 题意:一棵 n 个点的树,根为 1,重儿子到父亲的费用为 0,其余为 1,问所有点到 1 的最大总费用是 ...

  2. 洛谷P1156 垃圾陷阱【线性dp】

    题目:https://www.luogu.org/problemnew/show/P1156 题意: 每一个垃圾投放时间是t,可以堆的高度是h,如果吃掉可以增加的生命值是f. 给定g个垃圾,初始生命值 ...

  3. WINCE7 SYMBOL MC32N0 SDK,VS2008调试程序,连接设备时,出现bootstrap 未能加载时

    开发工具:visual studio 2008 手持设备: SYMBOL  MC32NO工具->连接到设备->WINCE 7.00连接设备出现bootstrap 未能加载时,试下安装Mot ...

  4. SpringBoot——》WebMvcConfigurerAdapter详解

    一.WebMvcConfigurerAdapter是什么二.WebMvcConfigurerAdapter常用的方法1.addInterceptors:拦截器2.addCorsMappings:跨域3 ...

  5. [Svelte 3] Use DOM events and event modifiers in Svelte 3

    The whole magic of webapps is that users can interact with our code via various DOM events and Svelt ...

  6. Python JSONⅢ

    JSON 函数 encode Python encode() 函数用于将 Python 对象编码成 JSON 字符串. 语法 实例 以下实例将数组编码为 JSON 格式数据: 以上代码执行结果为: d ...

  7. JPA规则

  8. Postman实现数字签名,Session依赖, 接口依赖, 异步接口结果轮询

    Script(JS)为Postman赋予无限可能 基于Postman 6.1.4 Mac Native版 演示结合user_api_demo实现 PS 最近接到任务, 要把几种基本下单接口调试和持续集 ...

  9. 【redis 学习系列08】Redis小功能大用处02 Pipeline、事务与Lua

    3.Pipeline 3.1 Pipeline概念 Redis客户端执行一条命令分为如下四个过程: (1)发送命令 (2)命令排队 (3)命令执行 (4)返回结果 其中(1)和(4)称为Round T ...

  10. sql语句中where 1=1和 0=1 的作用

    sql where 1=1和 0=1 的作用   where 1=1; 这个条件始终为True,在不定数量查询条件情况下,1=1可以很方便的规范语句. 一.不用where  1=1  在多条件查询中的 ...