首页 > 代码库 > 时间操作(struct tm、time_t)

时间操作(struct tm、time_t)

1.在标准C/C++中,我们可通过tm结构来获得日期和时间,tm结构在time.h中的定义如下:
#ifndef _TM_DEFINED
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代表星期一,以此类推 */


#include <stdio.h>
#include <time.h>

int main()
{
    time_t tnow;
    struct tm *ptm;
    time(&tnow);
    ptm = localtime(&tnow);//localtime把time_t类型转换成struct tm
    int ymd = (ptm->tm_year + 1900)*10000 + (ptm->tm_mon + 1)*100 + ptm->tm_mday;//localtime()所取得的日期,注意的是年份加上1900,月份加上1
    int hm = ptm->tm_hour*100 + ptm->tm_min;

 tnow = mktime(ptm);//mktime把struct tm类型转换成time_t
}

距9:30的分钟数可以表示成:
    min =  ptm->tm_hour*60 + ptm->tm_min - (9*60 + 30);

时间操作(struct tm、time_t)