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) );
  }
}

  

系统相关函数

posted @ 2020-02-19 18:58  shinedream  阅读(610)  评论(0编辑  收藏  举报