OpenLexocad  27.1
TimeInfo.h
Go to the documentation of this file.
1 #ifndef BASE_TIME_INFO_H
2 #define BASE_TIME_INFO_H
3 
4 #include <stdio.h>
5 #include <sys/timeb.h>
6 #include <time.h>
7 
8 namespace Base
9 {
10 class LX_BASE_EXPORT TimeInfo
11 {
12 public:
13  TimeInfo();
14  ~TimeInfo();
15 
17  void setToActual(void);
18  uint64_t getSeconds(void) const;
19  unsigned short getMiliseconds(void) const;
20 
21  void operator=(const TimeInfo& time);
22  bool operator==(const TimeInfo& time) const;
23  bool operator!=(const TimeInfo& time) const;
24 
25  bool operator<(const TimeInfo& time) const;
26  bool operator<=(const TimeInfo& time) const;
27  bool operator>=(const TimeInfo& time) const;
28  bool operator>(const TimeInfo& time) const;
29 
30  static const char* currentDateTimeString();
31  static std::string diffTime(const TimeInfo& timeStart, const TimeInfo& timeEnd = TimeInfo());
32  static float diffTimeF(const TimeInfo& timeStart, const TimeInfo& timeEnd = TimeInfo());
33  bool isNull() const;
34  static TimeInfo null();
35 
36 protected:
37  struct _timeb timebuffer;
38 };
39 
40 
41 inline bool TimeInfo::operator!=(const TimeInfo& time) const
42 {
43  return (timebuffer.time != time.timebuffer.time || timebuffer.millitm != time.timebuffer.millitm);
44 }
45 
46 inline void TimeInfo::operator=(const TimeInfo& time)
47 {
48  timebuffer = time.timebuffer;
49 }
50 
51 inline bool TimeInfo::operator==(const TimeInfo& time) const
52 {
53  return (timebuffer.time == time.timebuffer.time && timebuffer.millitm == time.timebuffer.millitm);
54 }
55 
56 inline bool TimeInfo::operator<(const TimeInfo& time) const
57 {
58  if (timebuffer.time == time.timebuffer.time)
59  return timebuffer.millitm < time.timebuffer.millitm;
60  else
61  return timebuffer.time < time.timebuffer.time;
62  // return (timebuffer.time < time.timebuffer.time && timebuffer.millitm < time.timebuffer.millitm);
63 }
64 
65 inline bool TimeInfo::operator<=(const TimeInfo& time) const
66 {
67  if (timebuffer.time == time.timebuffer.time)
68  return timebuffer.millitm <= time.timebuffer.millitm;
69  else
70  return timebuffer.time <= time.timebuffer.time;
71  // return (timebuffer.time <= time.timebuffer.time && timebuffer.millitm <= time.timebuffer.millitm);
72 }
73 
74 inline bool TimeInfo::operator>=(const TimeInfo& time) const
75 {
76  if (timebuffer.time == time.timebuffer.time)
77  return timebuffer.millitm >= time.timebuffer.millitm;
78  else
79  return timebuffer.time >= time.timebuffer.time;
80  // return (timebuffer.time >= time.timebuffer.time && timebuffer.millitm >= time.timebuffer.millitm);
81 }
82 
83 inline bool TimeInfo::operator>(const TimeInfo& time) const
84 {
85  if (timebuffer.time == time.timebuffer.time)
86  return timebuffer.millitm > time.timebuffer.millitm;
87  else
88  return timebuffer.time > time.timebuffer.time;
89  // return (timebuffer.time > time.timebuffer.time && timebuffer.millitm > time.timebuffer.millitm);
90 }
91 
92 
93 
94 } // namespace Base
95 
96 #endif // BASE_TIME_INFO_H
constexpr bool operator!=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) ENTT_NOEXCEPT
Compares two hashed strings.
Definition: entt.hpp:570
bool operator>(const TimeInfo &time) const
Definition: TimeInfo.h:83
void operator=(const TimeInfo &time)
Definition: TimeInfo.h:46
bool operator>=(const TimeInfo &time) const
Definition: TimeInfo.h:74
bool operator<=(const TimeInfo &time) const
Definition: TimeInfo.h:65
bool operator!=(const TimeInfo &time) const
Definition: TimeInfo.h:41
bool operator<(const TimeInfo &time) const
Definition: TimeInfo.h:56
Definition: TimeInfo.h:10
Definition: AbstractXMLReader.h:5
bool operator==(const TimeInfo &time) const
Definition: TimeInfo.h:51
struct _timeb timebuffer
Definition: TimeInfo.h:37