c语言时间函数

c语言时间函数

ID:41560415

大小:64.45 KB

页数:10页

时间:2019-08-27

c语言时间函数_第1页
c语言时间函数_第2页
c语言时间函数_第3页
c语言时间函数_第4页
c语言时间函数_第5页
资源描述:

《c语言时间函数》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。木文还通过人量的实例向你展示了time,h头文件中声明的各种函数和数据结构的详细使用方法。关键字:UTC(世界标准时间),CalendarTime(日历时间),epoch(时间点),clocktick(吋钟计吋单元)1.概念在C/C++中,对字符串的操作有很多值得注意的问题,同样,C/C++对时间的操作也有许多值得大家注意的地方。故近,在技术群中有很多网友也多次问到过

2、C++语言中对时间的操作、获取和显示等等的问题。卜而,在这篇文章中,笔者将主要介绍在C/C++中时间和日期的使用方法.通过学习许多C/C++库,你可以有很多操作、使川时I'可的方法。但在这之前你需要了解一些“时间”和“日期”的概念,主要有以下儿个:CoordinatedUniversalTime(UTC):协调世界时,又称为世界标准时间,也就是大家所熟知的格林威治标准时间(GreenwichMeanTime,GMT)。比如,中国内地的时间与UTC的时差为+8,也就是UTC+8。美国是UTC-5。Calenda

3、rTime:H历时间,是用“从一个标准时间点到此时的时间经过的秒数”来表示的时间。这个标准吋间点对不同的编译器来说会有所不同,但对一个编译系统来说,这个标准吋I'可点是不变的,该编译系统中的吋间对应的日历吋间都通过该标准吋间点来衡量,所以可以说H历时间是“相对时间”,但是无论你在哪一个时区,在同一时刻对同一个标准时间点来说,日历时间都是一样的。epoch:时间点。时间点在标准C/C++中是一个整数,它用此时的时间和标准时间点相差的秒数(即口历时间)来表示。clocktick:时钟计时单元(而不把它叫做时钟滴答

4、次数),一个时钟计时单元的时间长短是山CPU控制的。一个clocktick不是CPU的一个时蚀周期,而是C/C++的一个基本计时单•位。我们可以使用ANSI标准库中的time,h头文件。这个头文件中定义的时间和日期所使川的方法,无论是在结构定义,还是命名,都具有明显的C语言风格。下而,我将说明在C/C++中怎样使用日期的时间功能。2.计吋C/C++屮的计时函数是clock(),而与其相关的数据类型是clock_to在MSDN屮,查得对clock函数定义如下:clocktclock(void);这个函数返冋从“

5、开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clocktick)数,在MSDN中称之为挂钟时间(wal-clock)o曲clock_t是用来保存时间的数据类型,在time.h文件屮,我们可以找到对它的定义:#ifndefCLOCKTDEFINEDtypedeflongclockt;Sdefine_CLOCK_T_DEFTNED#endif很明显,clock_t是一个长整形数。在time.h文件中,还定义了一个常量CLOCKS_PER_SEC,它用来表示一秒钟会有多少个时钟计

6、时单元,其定义如下:#defineCLOCKSPERSEC((clockt)1000)可以看到每过千分之一秒(1亳秒),调川clock()函数返回的值就加1。卞面举个例子,你可以使用公式clock()/CLOCKS_PER_SEC來计算一个进程自身的运行吋间:voidelapsed_time(){printf(,zElapsedtime:%usecs.z,,clock()/CLOCKS_PER_SEC);当然,你也可以用Clock函数来计算你的机器运行一个循环或者处理其它事件到底花了多少吋间:#inclu

7、de"stdio.h”#include"stdlib.h"^includeatime,h”intmain(void){longi=10000000L;clock_tstart,finish;doubleduration;/*测量一个事件持续的时间*/printf("Timetodo%ldempty1oopsisi);start=clock();whi1e(i--);finish=clock();duration=(double)(finish-start)/CLOCKS_PER_SEC;printf("%fs

8、econds/z,duration);2time.h从头学。喜欢玩“时间”的朋友不要错过。system("pause");在笔者的机器上,运行结果如2Timetodo10000000emptyloopsis0.03000seconds上而我们看到吋钟计吋单元的长度为1毫秒,那么计吋的精度也为1毫秒,那么我们可不可以通过改变CLOCKS_PER_SEC的定义,通过把它定义的大一些,从而使计吋精度更

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。