zoukankan      html  css  js  c++  java
  • c++日期和时间相关操作<time.h>(ctime)

    time.h(ctime)是c time library,定义了获取和操作日期和时间的函数。

    1. 结构

    typedef long time_t;

    time_t是长整型,表示的是距(1970年,1月1日08:00:00)的秒数,常常通过time函数获得。

    struct tm {
    int tm_sec; //秒 0-59(一般)
    int tm_min; //分 0-59
    int tm_hour; //小时0-23
    int tm_mday;//day 1-31
    int tm_mon; //月0-11
    int tm_year; // 距 1900 的年数 如2013-1900 = 113
    int tm_wday; //星期 0-6
    int tm_yday; //距1月1号天数,0-365
    int tm_isdst;

    tm包括日历日期和时间的各个组成

    2.函数

    time_t time ( time_t * timer );//获取当前时间
    time_t mktime ( struct tm * timeptr );//将struct tm转换为time_t
    struct tm * localtime ( const time_t * timer ); //将time_t转换为struct tm
    size_t strftime ( char * ptr, size_t maxsize, const char * format,
                      const struct tm * timeptr ); //将struct tm转换为特定格式的字符串输出
    char *strptime(const char *buf,const char *format,struct tm *timeptr); //将format形式的时间字符串转换为struct tm

      

    3.常用

    #include <time.h>
    time_t now;
    now = time(NULL);//获取当前时间
    
    struct tm *timeinfo;
    timeinfo = localtime(&now);//转换为tm
    
    time_t seconds;
    seconds = mktime(timeinfo);//转换为time_t
      time_t now = time(NULL);
      struct tm timeinfo = *localtime(&now);
      char buf[40];
      strftime(buf, sizeof(buf), "%Y%m%d%H%M%S", &timeinfo);
      cout << buf << endl;//20130207142133
    
    
      strptime("20130207112305", "%Y%m%d%H%M%S", &timeinfo);
      cout << timeinfo.tm_sec << endl;//5
    

    4.获取当前时间的ms值

    #include <time.h>
    #include <sys/time.h>
    struct timeval tv;
    gettimeofday (&tv, NULL);
    uint64_t mseconds=tv.tv_sec * 1000 + tv.tv_usec / 1000;

    timeval用于指定时间值,结构如下

    timeval{
    time_t tv_sec; //秒 [long int]
    suseconds_t tv_usec; //微秒 [long int]
    };


    常用于计算一个方法的响应时间。

  • 相关阅读:
    查找算法:二分查找法(折半查找)
    钞票找零-贪心,动态规划算法
    PHP7与php5
    网站高并发解决方案(理论知识) 二
    loj#6566. 月之都的密码
    我的 Linux 配置
    CTSC2011 幸福路径
    WC2018 即时战略
    uoj#460 新年的拯救计划
    bzoj 5016 一个简单的询问
  • 原文地址:https://www.cnblogs.com/whuqin/p/4982022.html
Copyright © 2011-2022 走看看