首页 > 代码库 > 时间操作(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)