C/C++常用时间函数介绍

 

这几天一直做跟时间有关的操作,今天有空,特地整理一下

 

在介绍之前,先介绍两个概念

 

Coordinated Universal Time(UTC):协调世界时,又称为世界标准时间,也就是大家所熟知的格林威治标准时间(Greenwich Mean Time,GMT)。比如,中国内地的时间与UTC的时差为+8,也就是UTC+8。美国是UTC-5。

 

Calendar Time:日历时间,是用“从一个标准时间点到此时的时间经过的秒数”来表示的时间。这个标准时间点对不同的编译器来说会有所不同,但对一个编译系统来说,这个标准时间点是不变的,该编译系统中的时间对应的日历时间都通过该标准时间点来衡量,所以可以说日历时间是“相对时间”,但是无论你在哪一个时区,在同一时刻对同一个标准时间点来说,日历时间都是一样的。(简单点说,可以理解为CT时间就是UTC时间减去1900-01-01 00:00:00)

 

与日期和时间相关的数据结构

 

Cpp代码    收藏代码
  1. typedef long time_t          

 

    大家可能会产生疑问:既然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秒(不包括该时间点)之前的时间。

 

Cpp代码    收藏代码
  1. struct tm   
  2.   
  3.     int tm_sec;    
  4.     int tm_min;    
  5.     int tm_hour;    
  6.     int tm_mday;   
  7.     nt tm_mon;    
  8.     int tm_year;     
  9.     int tm_wday;    
  10.     int tm_yday;    
  11.     int tm_isdst;    
  12. };  

 

Cpp代码    收藏代码
  1. typedef long clock_t    "开启这个程序进程""程序中调用clock()函数"时之间的CPU时钟计时单元(clock tick)数  

 

clock(取得CPU时钟计时单元(clock tick)数)
函数定义 
clock_t clock( void )


函数说明 
函数返回从"开启这个程序进程"到"程序中调用clock()函数"时之间的CPU时钟计时单元(clock tick)数。其中clock_t是用来保存时间的数据类型


返回值 
从"开启这个程序进程"到"程序中调用clock()函数"时之间的CPU时钟计时单元(clock tick)数

 

在time.h文件中,定义了一个常量CLOCKS_PER_SEC,它用来表示一秒钟会有多少个时钟计时单元,其定义如下:

#define CLOCKS_PER_SEC ((clock_t)1000)

可以看到每过千分之一秒(1毫秒),调用clock()函数返回的值就加1。

 

范例:

Cpp代码 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值