• C语言获取系统时间及time.h函数使用指南


    C语言获取系统日期及时间(time.h的应用)

    以下内容基于C/C++语言参考手册的整理与补充


    系统时间的获取

    time()函数
      在头文件time.h中

    time_t time( time_t *time );//返回值为time_t 类型

    函数返回当前时间(sec),从1970年1月1日至此时经历的秒数。如果发生错误返回零。如果给定参数time ,那么当前时间存储到参数time中。

    通过time()函数来获得计算机系统当前的日历时间,在该函数的基础上进行日期与时间的处理。


    time()函数返回值的处理
    1. localtime() 函数的使用
    //原型
    struct tm *localtime( const time_t *time );
    int main(){
        time_t now;
        struct tm *time_now;
        time(&now);//等价于now=time(NULL)
        time_now=localtime(now);
    }
    
    

    函数返回struct tm结构体指针
    该结构体定义在time.h中 具体如下

    struct tm {
        int tm_sec;//秒[0,59]
        int tm_min;//分 - 取值区间为[0,59]
        int tm_hour;// 时 - 取值区间为[0,23] 
        int tm_mday;//一个月中的日期 - 取值区间为[1,31]
        int tm_mon;//月份(从一月开始,0代表一月)[0,11]
        int tm_year;//年,其值等于实际年份减去1900
        int tm_wday;//星期[0,6],其中0代表星期天,1代表星期一
        int tm_yday;//从每年1月1日开始的天数,[0,365],0表示1月1日
        int tm_isdst;//夏令时标识符,不实行夏令时tm_isdst为0 
      };

    逆函数mktime(struct tm *ptime)功能相反,将结构体time转换为秒,发生错误返回-1。

     
     
    2.strftime()函数的使用

    size_t strftime( char *str, size_t maxsize, const char *fmt, struct tm *time );

    函数按照参数fmt所设定格式将time类型的参数格式化为日期时间信息,然后存储在字符串str中(至多maxsize 个字符)。
    格式控制字符串fmt如下表所示://0表示周日,周日是一周的开始

    格式控制 含义 格式控制 含义
    %a 星期的缩略形式 %M 分钟[0-59]
    %A 星期的完整形式 %p AM or PM
    %b 月份的缩略形式 %S 秒钟[0-59]
    %B 月份的完整形式 %w 星期几的数字表示[0-6]
    %c 月份的缩略形式 %W 一年中的第几周
    %d 月中的第几天(1-31) %x 标准日期字符串
    %H 小时, 24小时格式 (0-23) %X 标准时间字符串
    %I 小时, 12小时格式 (1-12) %y 年[0-99]
    %j 一年中的第几天(1-366) %Y 用CCYY表示的年(如:2004)
    %m 月份 (1-12) %Z 时区名

     
     
    3. gmtime ()函数
    同localtime()函数,短时返回给定的统一世界时间(通常是格林威治时间),如果系统不支持统一世界时间系统返回NULL。

     
     
    4.difftime()函数

    double difftime( time_t time2, time_t time1 );

    返回时间参数time2和time1之差(sec)。

     
    5.ctime() 函数

        char *ctime( const time_t *time );

    等同于asctime( localtime( tp ) )
    函数转换参数time为本地时间格式:

    day month date hours:minutes:seconds year

     
     
    6.asctime()

    char *asctime( const struct tm *ptr );

    函数将ptr所指向的时间结构体转换成下列字符串:

    day month date hours:minutes:seconds year
    
    

    最有用的来了
    clock()函数

    clock_t clock( void );

    函数返回自程序开始运行的处理器时间,如果无可用信息,返回-1。 转换返回值以秒记, 返回值除以CLOCKS_PER_SECOND. (注: 如果编译器是POSIX兼容的, CLOCKS_PER_SECOND定义为1000000.)

  • 相关阅读:
    委托(2).net 1.x中的委托
    委托(1)认识委托
    克隆对象的几种方法
    常用的去重和排序
    为更好地设计数据库,重新整理sql server数据类型
    对于数据库中表示状态或类型字段表示方法的思考
    string to byte[]
    json序列化时datetime的处理方法
    dll版本冲突的解决方法
    .net中的序列化
  • 原文地址:https://www.cnblogs.com/kafm/p/12721870.html
Copyright © 2020-2023  润新知