• C语言时间函数


    C语言时间函数

    1、time函数

    头文件:time.h

    函数定义:time_t time (time_t *t)

    说明:返回从1970年1月1日的UTC时间从0时0分0妙算起到现在所经过的秒数。

    #include<stdio.h>

    #include<time.h>

    int main(){

    time_t timep;

    long seconds = time(&timep);

    printf("%ld ",seconds);

    printf("%ld ",timep);

    return 0;

    }

    输出:

    1302079744

    1302079744

    附:time_t 一路追踪发现就是从long类型经过不断的typedef ,#define定义过来的。

    2、ctime函数

    定义:char *ctime(const time_t *timep);

    说明:将参数所指的time_t结构中的信息转换成真实世界的时间日期表示方法,然后将结果以字符串形式返回。这个是本地时间。

    #include <stdio.h>

    #include<time.h>

    int main(void) {

    time_t timep;

    time(&timep);

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

    return 0;

    }

    输出:Wed Apr 6 16:53:35 2011

    3、gettime函数

    定义: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; /*从今年11日算起至今的天数*/

    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 ",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 ",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 ",wday[p->tm_wday],p->tm_hour,p->tm_min,p->tm_sec);

    return EXIT_SUCCESS;

    }

     

    输出:2011/4/6 Wed 17:3:0

     

    6mktime函数

    定义:time_t mktime(struct tm *timeptr);

    说明:用来将参数timeptr所指的tm结构数据转换成从197011日的UTC时间从000妙算起到现在所经过的秒数。

    #include <stdio.h>

    #include <stdlib.h>

    #include<time.h>

     

    int main(void) {

    time_t timep;

    struct tm *p;

    time(&timep);

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

    p = localtime(&timep);

    timep = mktime(p);

    printf("time()->localtime()->mktime():%ld ",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 ",tv.tv_sec);

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

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

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

    return EXIT_SUCCESS;

    }

    输出:tv_sec :1302081017

    tv_usec: 532325

    tz_minuteswest:-480

    tz_dsttime:0

  • 相关阅读:
    java基础第十七篇之网络编程和装饰者模式
    垃圾回收的常见算法
    java基础第十六篇之多线程
    java基础第十五篇之IO流和递归算法
    JVM史上最全实践优化没有之一
    java基础第十三篇之Collection
    java基础第十四篇之Map
    CDN加速静态文件访问
    java基础第十二篇之集合、增强for循环、迭代器和泛型
    Linux--RPM卸载安装
  • 原文地址:https://www.cnblogs.com/the-tops/p/5623308.html
Copyright © 2020-2023  润新知