头文件
#include <ctime>
1. 计算并格式化当前时间
// 计算当前时间
void getCurrentTime() {
// 获取当前时间,现在时间减去1900年1月1日0时0分0秒,以秒为单位
time_t timer = time(0);
cout << timer << endl; // 1539742144
// ctime: time_t -> str,字符串的格式为: Www Mmm dd hh:mm:ss yyyy
char *stime = ctime(&timer);
cout << stime << endl; // Wed Oct 17 10:09:04 2018
// localtime: time_t -> struct
struct tm *t = localtime(&timer);
// 日期
cout << t->tm_year + 1900 << "/" << t->tm_mon + 1 << "/" << t->tm_mday << endl; // 2018/10/17
// 时间
cout << t->tm_hour << ":" << t->tm_min << ":" << t->tm_sec << endl; // 10:9:4
// 天数
cout << t->tm_wday << endl; // 3, day since Sunday = 0
cout << t->tm_yday << endl; // 289, day since 1月1日
// strftime 传入 struct tm *t
char buffer[64];
strftime(buffer, sizeof(buffer), "Now is %Y/%m/%d %H:%M:%S", t); // Now is 2018/10/17 10:09:04
cout << buffer << endl;
}
1539742449
Wed Oct 17 10:14:09 2018
2018/10/17
10:14:9
3
289
Now is 2018/10/17 10:14:09
2. 计算两个时间差 difftime() 函数
// 计算两个时间差 difftime函数
void timeDiff() {
// 初始化 struct tm
struct tm t1 = { 0 };
struct tm t2 = { 0 };
// 现在时间 2018,10,16
t1.tm_year = 2018 - 1900;
t1.tm_mon = 9; // 从0开始
t1.tm_mday = 21;
// 高考时间 2019,6,7
t2.tm_year = 2019 - 1900;
t2.tm_mon = 5;
t2.tm_mday = 7;
double seconds = difftime(mktime(&t2), mktime(&t1)); // 转换结构体为time_t, difftime,计算时间差 单位为秒
cout << seconds / 86400 << endl; // 最后输出时间, 因为一天有86400秒(60*60*24)
}
229
Full Code
#include <iostream>
#include <ctime>
using namespace std;
void getCurrentTime();
void timeDiff();
int main() {
// getCurrentTime();
timeDiff();
return 0;
}
// 计算当前时间
void getCurrentTime() {
// 获取当前时间,现在时间减去1900年1月1日0时0分0秒,以秒为单位
time_t timer = time(0);
cout << timer << endl; // 1539742144
// ctime: time_t -> str,字符串的格式为: Www Mmm dd hh:mm:ss yyyy
char *stime = ctime(&timer);
cout << stime << endl; // Wed Oct 17 10:09:04 2018
// localtime: time_t -> struct
struct tm *t = localtime(&timer);
// 日期
cout << t->tm_year + 1900 << "/" << t->tm_mon + 1 << "/" << t->tm_mday << endl; // 2018/10/17
// 时间
cout << t->tm_hour << ":" << t->tm_min << ":" << t->tm_sec << endl; // 10:9:4
// 天数
cout << t->tm_wday << endl; // 3, day since Sunday = 0
cout << t->tm_yday << endl; // 289, day since 1月1日
// strftime 传入 struct tm *t
char buffer[64];
strftime(buffer, sizeof(buffer), "Now is %Y/%m/%d %H:%M:%S", t); // Now is 2018/10/17 10:09:04
cout << buffer << endl;
}
// 计算两个时间差 difftime函数
void timeDiff() {
// 初始化 struct tm
struct tm t1 = { 0 };
struct tm t2 = { 0 };
// 现在时间 2018,10,16
t1.tm_year = 2018 - 1900;
t1.tm_mon = 9; // 从0开始
t1.tm_mday = 21;
// 高考时间 2019,6,7
t2.tm_year = 2019 - 1900;
t2.tm_mon = 5;
t2.tm_mday = 7;
double seconds = difftime(mktime(&t2), mktime(&t1)); // 转换结构体为time_t, difftime,计算时间差 单位为秒
cout << seconds / 86400 << endl; // 最后输出时间, 因为一天有86400秒(60*60*24)
}
网友评论