1、时间类型
CoordinatedUniversal Time (UTC):世界标准时间,格林威治标准时间。(GreenwichMean Time,GMT)
CalendarTime:日历时间,是用“从一个标准时间点(如:1970年1月1日0点)”到此时经过的秒数来表示时间。
2、时间获取
#include <time.h>
time_ttime(time_t *tloc)
功能:获取日历时间,即从1970年1月1日0点到当前时间,所经历的秒数。
/*typedeflong time_t*/
3、时间转化
structtm *gmtime(const time_t *timep)
功能:将日历时间转化为UTC,并且保存至TM结构。
Structtm *localtime(const time_t *timep)
功能:将日历时间转化为本地时间,并且保存至TM结构。
tm结构:
structtm
{
inttm_sec; //秒值
inttm_min; //分钟值
inttm_hour; //小时值
inttm_mday; //本月第几日
inttm_mon; //本年第几月
inttm_year; //tm_year +1900 =哪一年
inttm_wday; //本周第几日
inttm_yday; //本年第几日
inttm_isdst; //日光节约时间
};
例子:
/*
* ================================================================
*
* Filename: time1.c
*
* Description: 获取时间
*
* Version: 1.0
* Created: 2013年10月30日 17时51分54秒
* Revision: none
* Compiler: gcc
*
* Author: ydonghao (), ydonghao2@gmail.com
* Organization: Personal
*
* ================================================================
*/
#include <time.h>
#include <stdio.h>
int main(void)
{
struct tm *local;
time_t t;
t = time(NULL);
local = localtime(&t);
printf("Local hour is:%d\n",local->tm_hour);
local = gmtime(&t);
printf("UTC hour is: %d\n", local->tm_hour);
return 0;
}
char*asctime(const struct tm*tm)
功能:将tm格式的时间转化为字符串,如:
SatJul 30 08 :43:03 2005
char*ctime(const time_t *timep)
功能:将日历时间转化为本地时间的字符串形式。
/*
* =================================================================
*
* Filename: time2.c
*
* Description: 时间显示
*
* Version: 1.0
* Created: 2013年10月30日 18时05分54秒
* Revision: none
* Compiler: gcc
*
* Author: ydonghao (), ydonghao2@gmail.com
* Organization: Personal
*
* =====================================================================
*/
#include <time.h>
#include <stdio.h>
int main(void)
{
struct tm*ptr;
time_t lt;
lt = time(NULL);
ptr = gmtime(<);
printf(asctime(ptr));
printf(ctime(<));
return 0;
}
intgettimeofday(struct timeval *tv, struct timezone *tz)
功能:获取从今日凌晨到现在的时间差,常用于计算事件耗时;
structtimeval
{
inttv_sec; //秒数
inttv_usec; //微秒数
}
/*
* =================================================================
*
* Filename: time3.c
*
* Description: 对函数执行时间计数
*
* Version: 1.0
* Created: 2013年10月30日 18时15分33秒
* Revision: none
* Compiler: gcc
*
* Author: ydonghao (), ydonghao2@gmail.com
* Organization: Personal
*
==================================================================
*/
#include <sys/time.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void function(void)
{
unsigned int i,j;
double y;
for( i = 0; i < 1000 ; i++ )
{
for( j = 0; j < 1000 ; j++ )
{
y ++ ;
}
}
}
int main(void)
{
struct timeval tpStart, tpEnd;
float timeuse;
gettimeofday(&tpStart, NULL);
function();
gettimeofday(&tpEnd, NULL);
timeuse = 1000000 * (tpEnd.tv_sec - tpStart.tv_sec) +
tpEnd.tv_usec - tpStart.tv_usec;
timeuse /= 1000000;
printf("Used Time: %f\n", timeuse);
return 0;
}
unsignedint sleep(unsigned int seconds);
功能:使程序睡眠seconds秒
voidusleep(unsigned long usec)
功能:使程序睡眠usec微秒。