C语言里面和时间有关的函数
参考链接
https://blog.csdn.net/ffcjjhv/article/details/83376767
0)Head file
#include "time.h"
1) 结构定义,
主要是3个结构,time_t,clock_t和tm
特别注意year,month的范围和我们常用的年月不一样,年是相对于1900/1970年的,月是从0到11的。
struct time_t ; //X64(X86 32bit)系统里面是1900(1970)年到现在经过了多少秒, struct clock_t ; struct tm { int tm_sec; // 秒,正常范围从 0 到 59,但允许至 61 int tm_min; // 分,范围从 0 到 59 int tm_hour; // 小时,范围从 0 到 23 int tm_mday; // 一月中的第几天,范围从 1 到 31 int tm_mon; // 月,范围从 0 到 11 int tm_year; // 自 1900 年起的年数 int tm_wday; // 一周中的第几天,范围从 0 到 6,从星期日算起 int tm_yday; // 一年中的第几天,范围从 0 到 365,从 1 月 1 日算起 int tm_isdst; // 夏令时
2)主要的函数
互相转换类函数
[1]转换成字符串显示类函数 char asctime(const struct tm timeptr); //将tm结构体中的信息转换为真实世界的时间,以字符串的形式显示 char ctime(const time_t timep); //将time_t结构转换为真是世界的时间,以字符串显示 [2]两种结构互相转换的函数 struct tm* gmtime(const time_t* timep); //将time_t表示的时间转换为没有经过时区转换的UTC时间,是一个struct tm结构指针 struct tm* localtime(const time_t* timep); //和gmtime类似,但是它是经过时区转换的时间 time_t mktime(struct tm* timeptr); //将struct tm 结构的时间转换为从1970年至今的秒数 [3]系统相关的函数
clock_t clock() ;
//进程起来时候(或者是开机时候,或者是别的什么固定时间点)到现在,处理器运行的时钟。 time_t time(time_t* t); //取系统当前的时间,放在time_t结构里面
double difftime(time_t time1, time_t time2) //两个时间之间相差多少 //print 运行时间的示例代码 void TimeTrack(unsigned char * text) { static clock_t begin_time=0; clock_t this_time=clock(); if (0 == begin_time) { printf("<TIME-Track>: Begin of Time Track \n"); begin_time = this_time ; }else{ printf("<TIME-Track>: {%s}=%f\n",text,(float) (this_time-begin_time) / CLOCKS_PER_SEC ); } }
另一种利用time()的方法
void TimeTrack(unsigned char * text) { static int begin_time=0; static time_t begin ; time_t this_time; time(&this_time); if (0 == begin_time) { printf("<TIME-Track>: Begin of Time Track \n"); memcpy(&begin,&this_time,sizeof(time_t)) ; begin_time = 1; }else{ printf("<TIME-Track>: {%s}=%f\n",text,difftime (this_time , begin) ); } }
系统相关函数