对于c++编程来说,取时间是经常用到的一项技能,掌握以两个函数,就可以轻松应对取时间问题了。
time() 和 time_t localtime() 和 tm结构体
1. time()函数获取日历时间,日历时间表示从以前某个点到现在的秒数,用time_t来表示。
time()函数结构如下:
time_t time(time_t* timer)
获取当前的系统时间,返回的结果是一个time_t类型,其实就是一个大整数,代表某时到当前的秒数。
然后调用localtime 将time_t锁表示的CUT时间转换为本地时间,并转换成struct tm类型。
2. localtime()函数,获取日期和时间。返回的是tm 结构体
函数结构如下:
struct tm *localtime(const time_t *time)
tm结构体结构如下:
struct tm
{
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_isdst;
}
3. 话不多说,上实战例子
#include <iostream>
#include <time.h>
using namespace std;
int main()
{
//time_t是long类型,精确到秒,是当前时间和1970年1月1日零点时间的差
const time_t t = time(NULL);
cout<<"current time is "<<t<<endl;
/*本地时间:日期,时间 年月日,星期,时分秒*/
struct tm* current_time = localtime(&t); //把当前秒数转换为时间结构体格式
printf("current year is %d;current month is %d;current date of month is %d\r\n",
1900 + current_time->tm_year,
1 + current_time->tm_mon /*此month的范围为0-11*/,
current_time->tm_mday);
}