C语言中怎样调用系统时间并动态显示!

C语言中怎样调用系统时间并动态显示!,第1张

得到系统时间

1使用CTime类

CTime tm=CTime::GetCurrentTime();

CString str=tmFormat(“现在时间是:%Y年%m月%d日 %X”);

MessageBox(str,NULL,MB_OK);

2: 得到系统时间日期(使用GetLocalTime)

SYSTEMTIME st;

CString strDate,strTime;

GetLocalTime(&st);

strDateFormat(“%4d-%2d-%2d”,stwYear,stwMonth,stwDay);

strTimeFormat(“%2d:%2d:%2d”,stwHour,stwMinute,stwSecond);

3使用GetTickCount//获取程序运行时间

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

……//程序段

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

long t = t2-t1; //前后之差即 程序运行时间 (ms)

以前实际上用过,很想对C语言中的时间函数了解多一点,趁着这个寒假,查了些资料,大概把我现在能用到的关于时间的 *** 作在此记录下来。通过几个函数来熟悉C语言中对时间的 *** 作。(注:以下程序均在VS2010上编译通过。)①time()函数。可以通过time()函数来获得日历时间。其原型为: time_t time(time_t timer);一般参数为空,返回值类型time_t是一个长整型数,函数将返回现在的日历时间,即从一个时间点(所有不同版本的Visual C++都是从1970年1月1日0时0分0秒)到现在的经过的秒数。例子程序:#include<stdioh>#include<timeh>void main(){ time_t lt; lt=time(NULL); printf("1970年1月1日0时0分0秒到现在经历了%ld秒%A",lt);}运行结果(结果与程序运行的时间有关,贴出我此时运行出的结果):1970年1月1日0时0分0秒到现在经历了1326975564秒请按任意键继续 ②clock()函数。C语言中的计时函数。函数原型为: clock_t clock(void);clock()函数返回从“开启这个程序进程\”到“程序中调用clock()函数”时之间的CPU时钟计时单元数。返回值类型clock_t也是一个长整型数。在timeh头文件中定义了一个符号常量CLOCKS_PER_SEC,表示一秒钟会有多少个计时单元。所以通过简单的数学知识,可以知道在程序中用clock()/CLOCKS_PER_SEC来表示程序从开始到调用clock()函数时用了多少秒。例子程序:#include<stdioh>#include<timeh>void main(){ clock_t lt; for(int i=0;i<1000000000;i++); lt=clock(); printf("循环执行1000000000个空 *** 作需要%f秒%A",(double)lt/CLOCKS_PER_SEC);}运行结果(在不同的机器上运行的结果可能不一样,下面是在我自己的笔记本上运行的结果):循环执行1000000000个空 *** 作需要3484000秒请按任意键继续 ③使用C库函数来显示日期和时间。首先要介绍一下C语言中的一个日期的结构体类型,tm类型。其在timeh中的定义如下:#ifndef _TM_DEFINEDstruct 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; };#define _TM_DEFINED#endif然后可以介绍有关的函数了。timeh提供了两种不同的函数将日历时间(一个长整型数)转换成我们平时看到的把年月日时分秒分开的时间格式: struct tm gmtime(const time_t timer); struct tm localtime(const time_t timer);其中gmtime()函数是将日历时间转换为世界标准时间(即格林尼治时间),并返回一个tm结构体来保存这个时间,而localtime()函数是将日历时间转换为本地时间(在中国地区获得的本地时间会比世界标准时间晚8个小时)。例子程序:#include<stdioh>#include<timeh>void main(){ struct tm local; time_t t; t=time(NULL); local=localtime(&t); printf("现在北京时间是%d点%A",local->tm_hour); local=gmtime(&t); printf("世界标准时间是%d点%A",local->tm_hour);}运行结果(运行结果与运行的时间有关,我是在早上9点多钟运行这个程序的):现在北京时间是9点世界标准时间是1点请按任意键继续 这样子我们就可以完全才输出此刻的年月日时分秒了,当然需要逐个来输出。其实C库函数还提供了一个很有用的以固定的时间格式来输出年月日时分秒的函数。这两个函数原型如下: char asctime(const struct tm timeptr); char ctime(const time_t timer);asctime()函数是通过tm结构来生成具有固定格式的保存时间信息的字符串,而ctime()是通过日历时间来生成时间字符串。这样下面的例子程序就容易理解了:#include<stdioh>#include<timeh>void main(){ struct tm local; time_t t; t=time(NULL); local=localtime(&t); printf(asctime(local)); local=gmtime(&t); printf(asctime(local)); printf(ctime(&t));}运行结果(我是在早上9点多运行这个程序的):Fri Jan 20 09:55:56 2012Fri Jan 20 01:55:56 2012Fri Jan 20 09:55:56 2012请按任意键继续 C语言还可以以我们规定的各种形式来规定输出时间的格式。要用到时可以查阅相关的资料,限于篇幅,就介绍到这里。④这里介绍计算持续的时间长度的函数。之前已经介绍了使用clock()函数的例子,它可以精确到毫秒级。其实我们也可以使用difftime()函数,但它只精确到秒。该函数的定义如下: double difftime(time_t time1,time_t time0);例子程序:#include<stdioh>#include<timeh>#include<stdlibh>void main(){ time_t start,end; start=time(NULL); for(int i=0;i<1000000000;i++); end=time(NULL); printf("这个循-环用了%f秒%A",difftime(end,start));}运行结果:这个循环用了3000000秒请按任意键继续 ⑤最后介绍mktime()函数。原型如下: time_t mktime(struct tm timer);可以使用函数将用tm结构表示的时间转换为日历时间。其返回值就是转换后的日历时间。这样我们就可以先制定一个分解时间,然后对这个时间进行 *** 作。下面的例子用来计算2012年1月20日是星期几:#include<timeh>#include<stdioh>#include<stdlibh>int main(void){ struct tm t; time_t t_of_day; ttm_year=2012-1900; ttm_mon=0; ttm_mday=20; ttm_hour=0; ttm_min=12; ttm_sec=1; ttm_isdst=1; t_of_day=mktime(&t); printf(ctime(&t_of_day)); return 0;}运行结果:Fri Jan 20 00:12:01 2012请按任意键继续

#include <stdioh>

#include <timeh>

void main()

{

time_t timep;

time (&timep);

printf("%s",ctime(&timep));

}

运行结果:

#include <stdioh>

#include <timeh>

#define N 10000 /这个数字可以自己改,如果时间太长结果不出来你就改小点/

void f()

{

int i, j, k;

for ( i = 0; i < N; ++i )

for ( j = 0; j < N; ++j )

for ( k = 0; k < N; ++k )

;

}

int main()

{

clock_t begin, duration;

begin = clock();

f();

duration = clock() - begin;

printf( "函数f()的运行时间大约为:%dms\n", duration1000/CLOCKS_PER_SEC );

}

以上就是关于C语言中怎样调用系统时间并动态显示!全部的内容,包括:C语言中怎样调用系统时间并动态显示!、C语言中的时间、C语言怎么把系统时间输出出来等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9310487.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存