C++标准库<ctime>
main.cpp
#include "Timer.h"
#include <iostream>
#include <ctime>
using namespace std;
void SetTimeObject(Timer *);
int main(void)
{
Timer Mywatch;
SetTimeObject(&Mywatch);
Mywatch.DisplayTimer();
return 0;
}
void SetTimeObject(Timer *pwatch) // 获取系统时间
{
char time_right_now[20]; // 存储时间的字符串
// _strtime函数将系统时间保存在一个字符串中
_strtime(time_right_now); // 将系统时间存储到一个字符串中
cout<<"系统时间为:"<<time_right_now<<endl;
// 需要获得小时、分钟和秒钟数
// 要用到一个time_t结构,该结构定义在time.h中
time_t SystemTime; // UTC时间变量
// 把SystemTime的地址传递给时间函数time
// 此时间函数time把UTC秒钟数存放在SystemTime中
time(&SystemTime);
// 需要将UTC转换成我们能使用的形式
// localtime函数可完成此任务
// 声明一个结构tm的指针来保存各时间信息
struct tm * OStime;
// 将SystemTime的地址传递给localtime可将其转换成tm结构
// OStime就指向了我们需要的数据
OStime = localtime(&SystemTime);
/* 现在可以访问系统时间的小时、分钟、秒了,将这些数据传递给Time对象的ResetTimer函数。
tm结构中有tm_hour, tm_min, tm_sec成员。*/
pwatch->ResetTimer(OStime->tm_hour, OStime->tm_min, OStime->tm_sec);
}
Timer.h
#ifndef _TIMER_H_
#define _TIMER_H_
class Timer
{
public:
Timer();
void ResetTimer(int hour, int min, int sec);
void DisplayTimer();
private:
int hour_, min_, sec_;
};
#endif // _TIMER_H_
Timer.cpp
#include "Timer.h"
#include <iostream>
using namespace std;
Timer::Timer()
{
hour_ = 0;
min_ = 0;
sec_ = 1;
}
void Timer::ResetTimer(int hour, int min, int sec)
{
hour_ = hour;
min_ = min;
sec_ = sec;
}
void Timer::DisplayTimer()
{
cout<<"Timer: "<<hour_<<":"<<min_<<":"<<sec_<<endl;
}