C/C++中的时间操作


1. 词汇解释

Coordinated Universal Time(UCT)

协调世界时,又称为世界标准时间,亦即格林威治标准时间(Greenwich Mean Time,GMT)。中国内地是UTC+8,美国是UTC-5。

Calendar Time

日历时间,是用“从一个标准时间点到此时的时间经过的秒数”来表示的时间。这个标准时间点对不同的编译器来说会有所不同,但对一个编译系统来说,这个标准时间点是不变的,该编译系统中的时间对应的日历时间都通过该标准时间点来衡量,所以可以说日历时间是“相对时间”,但是无论你在哪一个时区,在同一时刻对同一个标准时间点来说,日历时间都是一样的。

epoch

时间点,时间点在标准C/C++中是一个整数,它用此时的时间和标准时间点相差的秒数(即日历时间)来表示。

clock tick

时钟计时单元(而不把它叫做时钟滴答次数),一个时钟计时单元的时间长短是由CPU控制的。一个clock tick不是CPU的一个时钟周期,而是C/C++的一个基本计时单位。

2. 相关数据类型和函数

头文件"time.h"

数据定义:

  1. #ifndef _TM_DEFINED   
  2. struct tm {  
  3.         int tm_sec;     // 秒 – 取值区间为[0,59];   
  4.         int tm_min;     // 分 - 取值区间为[0,59];   
  5.         int tm_hour;    // 时 - 取值区间为[0,23];   
  6.         int tm_mday;    // 一个月中的日期 - 取值区间为[1,31];   
  7.         int tm_mon;     // 月份(从一月开始,0代表一月) - 取值区间为[0,11];   
  8.         int tm_year;    // 年份,其值等于实际年份减去1900;   
  9.         int tm_wday;    // 星期 – 取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推;   
  10.         int tm_yday;    // 从每年的1月1日开始的天数 – 取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推;   
  11.         int tm_isdst;   // 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时为负;   
  12. }  
  13. #define _TM_DEFINED   
  14. #endif   
  15.   
  16. #ifndef _TIME_T_DEFINED   
  17. typedef long time_t;   
  18. #define _TIME_T_DEFINED    
  19. #endif   
  20.   
  21. #ifndef _CLOCK_T_DEFINED   
  22. typedef long clock_t;  
  23. #define _CLOCK_T_DEFINED   
  24. #endif  
  • 1
  • 2
  • 3
  • 下一页

相关内容