Linux C语言中的time相关函数

Linux C函数中几个常用的time相关函数

函数原型:time_t time(time_t *t)

说明:返回从公元1970年1月1日的UTC时间从0时0分0秒算起到现在所经过的秒数,,即获取日历时间;如果t并非空指针的话,此函数会将返回值存到t指针所指的内存

实例:

time_t t;
t = time(NULL);

函数原型:struct tm *gmtime(const time_t *t)

说明:将日历时间转化为格林威治时间和日期,并将结果由结构体tm返回

结构体tm的定义:

struct tm
{
	int tm_sec;      //目前秒数,0-59
	int tm_min;      //目前分数,0-59
	int tm_hour;     //从午夜算起的时数,0-23
	int tm_mday;     //目前月份的日数,01-31
	int tm_mon;      //目前月份,从一月起始,0-11
	int tm_year;     //从1900年算起至今的年数
	int tm_wday;     //一星期的日数,从星期一算起,0-6
	int tm_yday;     //从今年1月1日算起至今的天数0-365
	int tm_isdst;    //日光节约时间的旗标
}

实例:

int main(void)
{
    char *wday[]={"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
    time_t timep;
    struct tm *p;

    time(&timep);
    p = gmtime(&timep);
    printf("%d/%d/%d", (1900+p->tm_year), (1+p->tm_mon), (p->tm_mday));
    printf("%s %d:%d:%d\n", wday[p->tm_wday], p->tm_hour, p->tm_min, p->tm_sec);
}

函数原型:struct tm *localtime(const time_t *t)

说明:将日历时间转化为本地时间和日期

实例:

int main(void)
{
    char *wday[]={"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
    time_t timep;
    struct tm *p;

    time(&timep);
    p=localtime(&timep);

    printf("%d/%d/%d", (1900+p->tm_year), (1+p->tm_mon), (p->tm_mday));
    printf("%s %d:%d:%d\n", wday[p->tm_wday], p->tm_hour, p->tm_min, p->tm_sec);
}

函数原型:char *astime(const struct tm *timeptr)

说明:以格林威治时间和日期的字符串格式打印

实例:

    time_t timep;
    time(&timep);
    printf("%s", asctime(gmtime(&timep)));

函数原型:char *ctime(const time_t *timep)

说明:以本地时间的字符串方式打印

实例:

    time_t timep;
    time(&timep);
    printf("%s", ctime(&timep));

函数原型:int gettimeofday(struct timeval *tv, struct timezone *tz)

说明:将目前的时间由tv所指的结构返回,当地时区的信息则放到由tz所指的结构中。

timeval 的结构定义为:

struct timeval
{
       long tv_sec;    //秒
       long tv_usec;   //微秒
}

timezone 的结构定义为:

struct timezone
{
       int tz_minuteswest;    //和Greenwich时间差了多少分钟
       int tz_dstime;       //日光节约时间的状态
}

实例:

/* 算法分析 */
void function() 
{ 
	unsigned int i,j; 
	double y; 
	for(i=0;i<1000;i++) 
		for(j=0;j<1000;j++) 
			y++; 
} 
int main() 
{ 
	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 us\n",timeuse); 
	return 0;
}

 

 

 

猜你喜欢

转载自blog.csdn.net/Tanner_SL/article/details/84338742