My Project
 All Classes Files Functions Variables Enumerations Enumerator Friends Macros Pages
RegDate.h
Go to the documentation of this file.
1 #ifndef GCP_UTIL_REGDATE_H
2 #define GCP_UTIL_REGDATE_H
3 
11 #include <iostream>
12 #include <sstream>
13 
14 #include "gcp/util/common/TimeVal.h"
15 
16 namespace gcp {
17  namespace util {
18 
19  class RegDate {
20  public:
21 
22  class Data {
23  public:
24  unsigned dayNo_;
25  unsigned mSec_;
26 
27  friend std::ostream& operator<<(std::ostream& os, Data& data);
28  void operator+=(unsigned mSec);
29  void operator=(TimeVal& tVal);
30  };
31 
32 
36  RegDate(unsigned dayNo, unsigned mSec);
37  RegDate(Data& data);
38  RegDate(TimeVal& timeVal);
39  RegDate();
40 
41  void setMjd(double mjd, bool doRound=false);
42  void setDate(unsigned dayNo, unsigned mSec);
43  void setDayNumber(unsigned dayNo);
44  void setMilliSeconds(unsigned mSec);
45  void setToCurrentTime();
46 
50  virtual ~RegDate();
51 
55  friend std::ostream& operator<<(std::ostream& os, RegDate& date);
56  std::string str();
57 
58  bool operator==(RegDate& date);
59  bool operator>(RegDate& date);
60  bool operator>=(RegDate& date);
61  bool operator<(RegDate& date);
62  bool operator<=(RegDate& date);
63 
64  RegDate operator-(const RegDate& date);
65  RegDate operator+(const RegDate& date);
66  RegDate operator/(unsigned int divisor);
67  void operator+=(const RegDate& date);
68  void operator-=(const RegDate& date);
69 
70  void operator=(RegDate::Data& data);
71  void operator=(const RegDate& date);
72  void operator=(RegDate& date);
73  void operator=(TimeVal& tVal);
74 
75  inline Data* data() {
76  return &data_;
77  }
78 
79  double mjd();
80  double timeInHours();
81  double timeInSeconds();
82 
83  inline unsigned dayNo() {
84  return data_.dayNo_;
85  }
86 
87  inline unsigned mSec() {
88  return data_.mSec_;
89  }
90 
91 #if 0
92  inline TimeVal timeVal() {
93  TimeVal time;
94  time.setMjd(data_.dayNo_, data_.mSec_);
95  return time;
96  }
97 #endif
98 
99  inline TimeVal& timeVal() {
100  return timeVal_;
101  }
102 
103  // Update internal time members from our timeval member
104 
105  void updateFromTimeVal();
106 
107  void initialize();
108 
109  static const unsigned milliSecondsPerDay_ = 24*3600*1000;
110 
111  private:
112 
113  Data data_;
114  TimeVal timeVal_;
115 
116  }; // End class RegDate
117 
118  } // End namespace util
119 } // End namespace gcp
120 
121 
122 
123 
124 #endif // End #ifndef GCP_UTIL_REGDATE_H
std::string str()
Definition: RegDate.cc:149
Definition: RegDate.h:22
virtual ~RegDate()
Definition: RegDate.cc:102
friend std::ostream & operator<<(std::ostream &os, RegDate &date)
double timeInSeconds()
Definition: RegDate.cc:197
Definition: TimeVal.h:55
Definition: RegDate.h:19
double timeInHours()
Definition: RegDate.cc:189
double mjd()
Definition: RegDate.cc:181