C语言提供了日期和时间库,可以确定时间、对时间值进行算术操作以及显示格式化时间等。这些函数都在头文件<time.h>
中声明,因此使用时需要包含该头文件。
时间处理函数
时间处理函数包括以下几个函数:
clock_t clock(void);
time_t time(time_t *timer);
double difftime(time_t end, time_t beggining);
time_t mktime(struct tm *timeptr);
clock
函数返回处理器时间,表示从程序执行开始过去的时间。clock_t
类型用于表示时间区间。<time.h>
中提供了宏CLOCKS_PER_SEC
将这个时间转换为秒。测量程序运行时间的惯用做法是调用两次clock
函数,一次在main
函数开始处,一次在程序要终止之前。将两个时刻的clock
返回值相减除以宏CLOCKS_PER_SEC
就可以获得程序运行时间(单位为秒)。
相对于clock_t
,time_t
包含完整的日期和时间信息且紧密编码,占用空间小,称为日历时间。time
函数返回当前的日历时间,如果实参不为空,该函数也会将当前时间存储在实参中。
difftime
函数返回两个日历时间end
和begging
之间的差值,以秒为单位。
struct tm
是存放时间和日期的结构体,称为分解时间,其成员如下表,都为int
类型:
名称 | 描述 | 最小值 | 最大值 |
---|---|---|---|
tm_sec |
秒 | 0 | 61(允许润秒) |
tm_min |
分 | 0 | 59 |
tm_hour |
小时 | 0 | 23 |
tm_mday |
每月的天 | 1 | 23 |
tm_mon |
从一月以后的月份 | 0 | 11 |
tm_year |
从1900以后的年份 | 0 | – |
tm_wday |