UTCDateTime.h
Go to the documentation of this file.
1 #ifndef _utl_UTCDateTime_h_
2 #define _utl_UTCDateTime_h_
3 
4 #include <utl/UTCDate.h>
5 #include <utl/TimeStamp.h>
6 
7 
8 namespace utl {
9 
18  class UTCDateTime : public UTCDate {
19  public:
21  : UTCDate(), fHour(0), fMinute(0), fSecond(0), fNanosecond(0) { }
22 
23  UTCDateTime(const UTCDate& date,
24  const int hour = 0, const int minute = 0, const int second = 0,
25  const double nanosecond = 0)
26  : UTCDate(date)
28 
29  UTCDateTime(const int year, const int month, const int day,
30  const int hour = 0, const int minute = 0, const int second = 0,
31  const double nanosecond = 0)
32  : UTCDate(year, month, day)
34 
35  UTCDateTime(const TimeStamp& time);
36 
37  void
38  Set(const int year, const int month, const int day,
39  const int hour, const int minute, const int second,
40  const double nanosecond = 0)
41  {
42  UTCDate::Set(year, month, day);
43  SetHMS(hour, minute, second, nanosecond);
44  }
45 
46  std::string GetInAugerFormat() const;
47 
48  std::string GetInXMLFormat() const;
49 
50  std::string GetInMySQLFormat() const;
51 
52  TimeStamp GetTimeStamp() const;
53 
54  int GetHour() const { return fHour; }
55 
56  int GetMinute() const { return fMinute; }
57 
58  int GetSecond() const { return fSecond; }
59 
60  double GetNanosecond() const { return fNanosecond; }
61 
63  std::time_t GetUnixSecond() const
65 
67 
69 
70  static UTCDateTime Max();
71 
72  static UTCDateTime Min() { return GetGPSEpoch(); }
73 
74  private:
75  void SetHMS(const int hour, const int minute, const int second,
76  const double nanosecond = 0);
77 
78  std::istream& Parse(std::istream& is);
79 
80  int fHour;
81  int fMinute;
82  int fSecond;
83  double fNanosecond;
84 
85  friend std::istream& operator>>(std::istream&, UTCDateTime&);
86  };
87 
88 
89  inline std::ostream& operator<<(std::ostream& os, const UTCDateTime& utc)
90  { return os << utc.GetInXMLFormat(); }
91 
92 
93  inline std::istream& operator>>(std::istream& is, UTCDateTime& utc)
94  { return utc.Parse(is); }
95 
96 }
97 
98 
99 #endif
std::time_t GetUnixSecond() const
Relative to Unix epoch (1 Jan 1970 00:00:00 UTC) without leap corrections.
Definition: UTCDate.h:68
constexpr double second
Definition: AugerUnits.h:145
std::time_t GetUnixSecond() const
seconds after Unix epoch (1 Jan 1970) without any leap corrections
Definition: UTCDateTime.h:63
std::istream & operator>>(std::istream &is, SVector< n, T > &v)
Definition: SVector.h:346
void SetHMS(const int hour, const int minute, const int second, const double nanosecond=0)
Definition: UTCDateTime.cc:31
static UTCDateTime Min()
Definition: UTCDateTime.h:72
double GetNanosecond() const
Definition: UTCDateTime.h:60
int GetHour() const
Definition: UTCDateTime.h:54
std::string GetInAugerFormat() const
Definition: UTCDateTime.cc:78
void Set(const int year, const int month, const int day)
Definition: UTCDate.cc:19
bool is(const double a, const double b)
Definition: testlib.cc:113
static UTCDateTime GetUnixEpoch()
Definition: UTCDateTime.h:66
UTCDateTime(const int year, const int month, const int day, const int hour=0, const int minute=0, const int second=0, const double nanosecond=0)
Definition: UTCDateTime.h:29
std::string GetInMySQLFormat() const
Definition: UTCDateTime.cc:107
std::istream & Parse(std::istream &is)
Definition: UTCDateTime.cc:128
int GetYear() const
Definition: UTCDate.h:44
int GetMinute() const
Definition: UTCDateTime.h:56
A TimeStamp holds GPS second and nanosecond for some event.
Definition: TimeStamp.h:110
Stream & operator<<(Stream &s, MessageLoggerConfig &mlc)
Applies the configuration to the given stream.
static UTCDateTime GetGPSEpoch()
Definition: UTCDateTime.h:68
static UTCDate GetUnixEpoch()
Definition: UTCDate.h:65
static UTCDateTime Max()
Definition: UTCDateTime.cc:156
double fNanosecond
Definition: UTCDateTime.h:83
int GetSecond() const
Definition: UTCDateTime.h:58
constexpr double nanosecond
Definition: AugerUnits.h:143
static UTCDate GetGPSEpoch()
Definition: UTCDate.h:63
friend std::istream & operator>>(std::istream &, UTCDateTime &)
Definition: UTCDateTime.h:93
constexpr double minute
Definition: AugerUnits.h:149
constexpr double hour
Definition: AugerUnits.h:150
int GetMonth() const
Definition: UTCDate.h:46
int GetDay() const
Definition: UTCDate.h:48
void Set(const int year, const int month, const int day, const int hour, const int minute, const int second, const double nanosecond=0)
Definition: UTCDateTime.h:38
std::string GetInXMLFormat() const
Definition: UTCDateTime.cc:94
TimeStamp GetTimeStamp() const
Definition: UTCDateTime.cc:115
constexpr double day
Definition: AugerUnits.h:151
const double year
Definition: GalacticUnits.h:22
UTCDateTime(const UTCDate &date, const int hour=0, const int minute=0, const int second=0, const double nanosecond=0)
Definition: UTCDateTime.h:23

, generated on Tue Sep 26 2023.