时间类型:
coordinated universal time(UTC):世界标准时间,也就是格林威治标准时间GMT
calendar time:日历时间,是用“从一个标准时间点(如:1970-1-1-0)到此时经过的秒数”来表示时间。
时间获取:
# include
time _t time(time_t *tloc)
功能:获取日历时间。
时间转化:
struct tm *gmtime(const time_t *timep)
功能:将日历时间转化为格林威治标准时间,并保存至TM结构。
struct tm *localtime(const time_t *timep)
功能:将日历时间转化为本地时间,并保存至TM结构。
时间保存:
struct tm
{
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;本月第几日
int tm_mon;本年第几月
int tm_year;
int tm_wday;本周第几日
int tm_yday;本年第几日
int tm_isdst;日光节约时间
};
时间获取
例:time1.c
# include
//时间编辑的头文件
# include
int main(void)
{
struct tm *local;
time_t t; //time_t返回一个long类型
t = time(NULL); //time()返回一个time_t类型
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;
}
注释
函数名称: localtime
函数原型: struct tm *localtime(const time_t
*timer)
函数功能:
返回一个以tm结构表达的机器时间信息
函数返回: 以tm结构表达的时间
函数名称: time
函数原型: time_t time(time_t
*timer)
函数功能:
得到机器的日历时间或者设置日历时间
函数返回: 机器日历时间
参数说明:
timer=NULL时得到机器日历时间,timer=时间数值时,用于设置日历时间,time_t是一个long类型
运行结果:
[regry@campusnetwork test]$ ls
edit.c file_create.c file_fprintf.c file_fscanf.c file_open.c
file_cp.c file_fgetc.c file_fputc.c file_getcwd.c time1.c
[regry@campusnetwork test]$ gcc time1.c -o time1
[regry@campusnetwork test]$ ls
edit.c file_create.c file_fprintf.c file_fscanf.c file_open.c time1.c
file_cp.c file_fgetc.c file_fputc.c file_getcwd.c time1
[regry@campusnetwork test]$ ./time1
local hour is:6
utc hour is:13
[regry@campusnetwork test]$ date
Mon Oct 28 06:37:00 PDT 2013
时间显示
char *asctime(const struct tm *tm)
功能:将tm格式的时间转化为字符串,如:
sat Jul 30 08:43:03 2005
char *ctime(const time_t *timep)
功能:将日历时间转化为本地时间的字符串形式。
例子:time2.c
# include
# include
int main(void)
{
struct tm *ptr;
time_t lt;
lt = time(NULL);
ptr = gmtime(
printf(asctime(ptr));
printf(ctime(
return 0;
}
运行结果为:
[regry@campusnetwork test]$ ./time2
Mon Oct 28 14:05:26 2013
Mon Oct 28 07:05:26 2013
获取时间:
int gettimeofday(struct timeval *tv, struct timezone *tz)
功能:获取从今日凌晨到现在的时间差,常用于计算事件耗时。
struct timeval
{
int tv_sec:
int tv_usec://微秒数
};
下面介绍一个例子,time3.c
# include
# include
# include
# include
void function(void)
{
unsigned int i, j;
double y;
for(i=0; i<1000; i++)
for(j=0; j<1000; j++)
y++;
}
main(void)
{
struct timeval tpstart,tpend;
float timeuse;
gettimeofday(&tpstart,
NULL);//语句功能:获取当下系统时间,并保存到ptstart。
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);
exit(0);
}
运行程序输出结果:
used time:0.003730
延时执行:
unsigned int sleep(unsigned int seconds)
功能:使程序睡眠seconds秒。
void usleep(unsigned long usec)
功能:使程序睡眠usec微秒。