c语言getdate函数 c语言中get函数的用法( 五 )


此函数返回的时间日期未经时区转换,而是UTC时间 。
返回值
返回结构tm代表目前UTC 时间
范例
#i nclude
main(){
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);
}
执行
2000/10/28 Sat 8:15:38
localtime(取得当地目前时间和日期)
相关函数
time, asctime, ctime, gmtime
表头文件
#i nclude
定义函数
struct tm *localtime(const time_t * timep);
函数说明
localtime()将参数timep所指的time_t结构中的信息转换成真实世界所使用的时间日期表示方法 , 然后将结果由结构tm返回 。
结构tm的定义请参考gmtime() 。此函
数返回的时间日期已经转换成当地时区 。
返回值
返回结构tm代表目前的当地时间 。
范例
#i nclude
main(){
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),( l+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);
}
执行
2000/10/28 Sat 11:12:22
mktime(将时间结构数据转换成经过的秒数)
相关函数
time , asctime,gmtime,localtime
表头文件
#i nclude
定义函数
time_t mktime(strcut tm * timeptr);
函数说明
mktime()用来将参数timeptr所指的tm结构数据转换成从公元1970年1月1日0时0分0 秒算起至今的UTC时间所经过的秒数 。
返回值
返回经过的秒数 。
范例
/* 用time()取得时间(秒数),利用localtime()
转换成struct tm 再利用mktine()将struct tm转换成原来的秒数*/
#i nclude
main()
{
time_t timep;
strcut tm *p;
time(timep);
printf("time() : %d \n",timep);
p=localtime(timep);
timep = mktime(p);
printf("time()-localtime()-mktime():%d\n",timep);
}
执行
time():974943297
time()-localtime()-mktime():974943297
settimeofday(设置目前时间)
相关函数
time,ctime,ftime,gettimeofday
表头文件
#i nclude
#i nclude
定义函数
int settimeofday ( const struct timeval *tv,const struct timezone *tz);
函数说明
settimeofday()会把目前时间设成由tv所指的结构信息,当地时区信息则设成tz所指的结构 。详细的说明请参考gettimeofday() 。
注意,只有root权限才能使用此函数修改时间 。
返回值
成功则返回0,失败返回-1,错误代码存于errno 。
错误代码
EPERM 并非由root权限调用settimeofday(),权限不够 。
EINVAL 时区或某个数据是不正确的,无法正确设置时间 。
time(取得目前的时间)
相关函数
ctime , ftime,gettimeofday
表头文件
#i nclude
定义函数
time_t time(time_t *t);
函数说明
此函数会返回从公元1970年1月1日的UTC时间从0时0分0秒算起到现在所经过的秒数 。如果t 并非空指针的话,
此函数也会将返回值存到t指针所指的内存 。
返回值
成功则返回秒数,失败则返回((time_t)-1)值,错误原因存于erro中 。
C语言程序设计:写一个函数,从给定的身份证号中提取出生年月日这个简单 , 用以字符串str[20]={身份证号码};出生月日就是倒数第7个元素到第14个元素结束;
用一个for循环,如str[20]="45032519901016127X";for(i=6;i=13;i++) putchar(str[i]);就可以了

推荐阅读