C语言时间函数

1time函数
头文件: time.h
函数定义: time_t time (time_t *t)
说明:返回从 197011日的 UTC时间从 000妙算起到现在所经过的秒数。
#include<stdio.h>

#include<time.h>

int main(){

time_t timep;

long seconds = time(&timep);

printf("%ld\n",seconds);

printf("%ld\n",timep);

return 0;

}
输出:
1302079744
1302079744
附: time_t 一路追踪发现就是从 long类型经过不断的 typedef ,#define定义过来的。
2ctime函数
定义:char *ctime(const time_t *timep);
说明:将参数所指的time_t 结构中的信息转换成真实世界的时间日期表示方法,然后将结果以字符串形式返回。这个是本地时间。
#include <stdio.h>

#include<time.h>

int main(void) {

time_t timep;

time(&timep);

printf("%s\n",ctime(&timep));

return 0;

}

输出:Wed Apr 6 16:53:35 2011
3gettime函数
定义: struct tm *gmtime(const time_t *timep);
说明:将参数timep 所指的time_t 结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果由结构tm 返回。此函数返回的时间日期未经时区转换,而是UTC 时间。struct tm 结构的定:
struct tm{
int tm_sec;/* 秒数*/
int tm_min; /* 分钟*/
int tm_hour;/* 小时*/
int tm_mday;/* 日期*/
int tm_mon; /* 月份*/
int tm_year; /* 1990 年算起至今的年数*/
int tm_wday; /* 星期*/
int tm_yday; /* 从今年1 1 日算起至今的天数*/
int tm_isdst; /* 日光节约时间的旗标*/
};
#include <stdio.h>

#include<time.h>



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

return 0;

}

输出:2011/4/6 Wed 8:59:0
4、  asctime函数
定义: char *asctime(const struct tm *timeptr);
说明:将参数 timeptr所指的 struct tm结构中的信息转换成真实时间所使用的时间日期表示方法,结果以字符串形态返回。与 ctime()函数不同之处在于传入的参数是不同的结构。注意返回的也是 UTC时间。
#include <stdio.h>

#include <stdlib.h>

#include<time.h>

int main(void) {

time_t timep;

time(&timep);

printf("%s\n",asctime(gmtime(&timep)));

return EXIT_SUCCESS;

}

输出:Wed Apr 6 09:00:39 2011
5 、 localhost 函数
struct tm *localhost(const time_t *timep); 取得当地目前的时间和日期
#include <stdio.h>

#include <stdlib.h>

#include<time.h>



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

return EXIT_SUCCESS;

}



输出:2011/4/6 Wed 17:3:0
6 mktime 函数
定义:time_t mktime(struct tm *timeptr);
说明:用来将参数timeptr 所指的tm 结构数据转换成从1970 1 1 日的UTC 时间从0 0 0 妙算起到现在所经过的秒数。
#include <stdio.h>

#include <stdlib.h>

#include<time.h>



int main(void) {

time_t timep;

struct tm *p;

time(&timep);

printf("time():%ld\n",timep);

p = localtime(&timep);

timep = mktime(p);

printf("time()->localtime()->mktime():%ld\n",timep);

return EXIT_SUCCESS;

}

输出:time():1302080789

time()->localtime()->mktime():1302080789
7 、 gettimeofday 函数
定义:int gettimeofday(struct timeval *tv,struct timezone *tz);
说明:把目前的时间由tv 所指的结构返回,当地时区信息则放到有tz 所指的结构中,
struct timeval{
long tv_sec; /* */
long tv_usec; /* 微秒*/
};
struct timezone{
int tz_minuteswest; /* greenwich 时间差了多少分钟*/
int tz_dsttime; /* 日光节约时间的状态*/
}
#include <stdio.h>

#include <stdlib.h>

#include<time.h>

#include<sys/time.h>



int main(void) {

struct timeval tv;

struct timezone tz;

gettimeofday(&tv,&tz);

printf("tv_sec :%d\n",tv.tv_sec);

printf("tv_usec: %d\n",tv.tv_usec);

printf("tz_minuteswest:%d\n",tz.tz_minuteswest);

printf("tz_dsttime:%d\n",tz.tz_dsttime);

return EXIT_SUCCESS;

}

输出:tv_sec :1302081017

tv_usec: 532325

tz_minuteswest:-480

tz_dsttime:0

你可能感兴趣的:(职场,C语言,时间函数,休闲)