BIMHome v1.0.0
BIMHome接口文档说明
TimeInfo.h
浏览该文件的文档.
1/************************************************************************
2* @file TimeInfo.h
3*
4* @brief 时间信息类
5*
6* @details 时间信息类
7*
8* @author wukx
9*
10* @version v1.0
11*
12* @date 2016.9.29
13*
14* @license 北京华科软科技有限公司
15*
16*************************************************************************/
17
18#ifndef BIMHOMEBASE_TIMEINFO_H
19#define BIMHOMEBASE_TIMEINFO_H
20
21#include <cstdio>
22#include <sys/timeb.h>
23#include <ctime>
24#include <string>
25#include <BHGlobal.h>
26
27namespace Base
28{
29
35 class BaseExport TimeInfo
36 {
37 public:
43
49 TimeInfo(const TimeInfo&) = default;
50
55 virtual ~TimeInfo();
61 static std::string currentDateTimeString();
62
70 static std::string diffTime(const TimeInfo& timeStart, const TimeInfo& timeEnd = TimeInfo());
71
79 static float diffTimeF(const TimeInfo& timeStart, const TimeInfo& timeEnd = TimeInfo());
80
86 static TimeInfo null();
87
92 void setCurrent();
93
99 void setTime_t(int64_t seconds);
100
106 int64_t getSeconds() const;
107
113 unsigned short getMiliseconds() const;
114
120 bool isNull() const;
121
127 void operator = (const TimeInfo& time);
128
135 bool operator == (const TimeInfo& time) const;
136
143 bool operator != (const TimeInfo& time) const;
144
151 bool operator < (const TimeInfo& time) const;
152
159 bool operator <= (const TimeInfo& time) const;
160
167 bool operator >= (const TimeInfo& time) const;
168
175 bool operator > (const TimeInfo& time) const;
176
177 protected:
178#if defined (_MSC_VER)
179 struct _timeb timebuffer;
180#elif defined(__GNUC__)
181 struct timeb timebuffer;
182#endif
183 };
184
185 inline int64_t TimeInfo::getSeconds() const
186 {
187 return timebuffer.time;
188 }
189
190 inline unsigned short TimeInfo::getMiliseconds() const
191 {
192 return timebuffer.millitm;
193 }
194
195 inline bool TimeInfo::operator != (const TimeInfo& time) const
196 {
197 return (timebuffer.time != time.timebuffer.time || timebuffer.millitm != time.timebuffer.millitm);
198 }
199
200 inline void TimeInfo::operator = (const TimeInfo& time)
201 {
202 timebuffer = time.timebuffer;
203 }
204
205 inline bool TimeInfo::operator == (const TimeInfo& time) const
206 {
207 return (timebuffer.time == time.timebuffer.time && timebuffer.millitm == time.timebuffer.millitm);
208 }
209
210 inline bool TimeInfo::operator < (const TimeInfo& time) const
211 {
212 if (timebuffer.time == time.timebuffer.time)
213 return timebuffer.millitm < time.timebuffer.millitm;
214 else
215 return timebuffer.time < time.timebuffer.time;
216 }
217
218 inline bool TimeInfo::operator <= (const TimeInfo& time) const
219 {
220 if (timebuffer.time == time.timebuffer.time)
221 return timebuffer.millitm <= time.timebuffer.millitm;
222 else
223 return timebuffer.time <= time.timebuffer.time;
224 }
225
226 inline bool TimeInfo::operator >= (const TimeInfo& time) const
227 {
228 if (timebuffer.time == time.timebuffer.time)
229 return timebuffer.millitm >= time.timebuffer.millitm;
230 else
231 return timebuffer.time >= time.timebuffer.time;
232 }
233
234 inline bool TimeInfo::operator > (const TimeInfo& time) const
235 {
236 if (timebuffer.time == time.timebuffer.time)
237 return timebuffer.millitm > time.timebuffer.millitm;
238 else
239 return timebuffer.time > time.timebuffer.time;
240 }
241
242} //namespace Base
243
244
245#endif // BIMHOMEBASE_TIMEINFO_H
246
bool operator>=(const TimeInfo &time) const
重载 >= 操作符
Definition TimeInfo.h:226
static float diffTimeF(const TimeInfo &timeStart, const TimeInfo &timeEnd=TimeInfo())
计算两个时间点之间的时间差(浮点秒)
TimeInfo()
默认构造函数
void setCurrent()
设置对象为当前系统时间
bool operator<(const TimeInfo &time) const
重载 < 操作符
Definition TimeInfo.h:210
void setTime_t(int64_t seconds)
设置时间戳(秒)
static std::string diffTime(const TimeInfo &timeStart, const TimeInfo &timeEnd=TimeInfo())
计算两个时间点之间的时间差
virtual ~TimeInfo()
析构函数
TimeInfo(const TimeInfo &)=default
复制构造函数
void operator=(const TimeInfo &time)
重载 = 操作符
Definition TimeInfo.h:200
bool operator<=(const TimeInfo &time) const
重载 <= 操作符
Definition TimeInfo.h:218
bool operator!=(const TimeInfo &time) const
重载 != 操作符
Definition TimeInfo.h:195
bool isNull() const
检查时间对象是否为空
static std::string currentDateTimeString()
获取当前日期和时间的字符串表示
int64_t getSeconds() const
获取时间戳(秒)
Definition TimeInfo.h:185
bool operator==(const TimeInfo &time) const
重载 == 操作符
Definition TimeInfo.h:205
unsigned short getMiliseconds() const
获取毫秒部分
Definition TimeInfo.h:190
static TimeInfo null()
获取空时间对象
bool operator>(const TimeInfo &time) const
重载 > 操作符
Definition TimeInfo.h:234
TimeInfo 类,用于表示时间信息
Definition TimeInfo.h:36
Definition BaseFigureFactory.h:24