大家可能在开发过程中经常会遇到获取当前系统时间的问题。那么除了MFC中的CTime类外,有没有其他的方法呢? 答案是肯定的。
很多C/C++的初学者在学习这门语言的时候,经常是只注意其语法,而其库函数却知道的很少。有的知道一些,但是却很少应用。笔者在这里建议大家,经常去看看标准C库,标准C++库。如果能在开发过程中经常使用上这些库函数,将会使我们的开发过程变得简单不少。
那么标准C中如何获取本地时间呢? 在这之前请你去找一下time.h这个头文件,或许你会在里边找到一些你以前不知道的东西。
在time.h中定义了一个时间的结构体tm。这个结构体定义如下
#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代表星期一,以此类推 */
int tm_yday; /* 从每年的1月1日开始的天数 – 取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推 */
int tm_isdst; /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。*/
};
#define _TM_DEFINED
#endif
请注意看后边的注释哦。
另外有两个函数
struct tm * gmtime(const time_t *timer);
struct tm * localtime(const time_t * timer);
前者用来获取UTC时间,后者用来获取本地时间。那么下边的事情就不用我再说了吧。
最后提醒各位,经常看看库函数喔。