CARMA C++
RegDate.h
Go to the documentation of this file.
1 #ifndef SZA_UTIL_REGDATE_H
2 #define SZA_UTIL_REGDATE_H
3 
11 #include <iostream>
12 #include <sstream>
13 
14 #include "carma/szautil/TimeVal.h"
15 
16 namespace sza {
17  namespace util {
18 
19  class RegDate {
20  public:
21 
22  struct Data {
23  unsigned dayNo_;
24  unsigned mSec_;
25  };
26 
30  RegDate(unsigned dayNo, unsigned mSec);
31  RegDate(Data& data);
32  RegDate(TimeVal& timeVal);
33  RegDate();
34 
35  void setDayNumber(unsigned dayNo);
36  void setMilliSeconds(unsigned mSec);
37  void setMjd(double mjd);
38 
42  virtual ~RegDate();
43 
47  friend std::ostream& operator<<(std::ostream& os, RegDate& date);
48  std::string str();
49 
50  std::string formatCarmaString();
51 
52  bool operator==(RegDate& date);
53  bool operator>(RegDate& date);
54  bool operator>=(RegDate& date);
55  bool operator<(RegDate& date);
56  bool operator<=(RegDate& date);
57 
58  RegDate operator-(const RegDate& date);
59  RegDate operator+(const RegDate& date);
60  RegDate operator/(unsigned int divisor);
61  void operator+=(const RegDate& date);
62  void operator-=(const RegDate& date);
63  void operator=(RegDate::Data& data);
64 
65  void operator=(TimeVal& timeVal);
66  void setTo(TimeVal& timeVal);
67 
68  inline Data* data() {
69  return &data_;
70  }
71 
72  double mjd();
73  double timeInHours();
74 
75  inline unsigned dayNo() {
76  return data_.dayNo_;
77  }
78 
79  inline unsigned mSec() {
80  return data_.mSec_;
81  }
82 
83  inline TimeVal timeVal() {
84  return timeVal_;
85  }
86 
87  void initialize();
88 
89  static const unsigned milliSecondsPerDay_ = 24*3600*1000;
90 
91  private:
92 
93  Data data_;
94  TimeVal timeVal_;
95 
96  }; // End class RegDate
97 
98  } // End namespace util
99 } // End namespace sza
100 
101 
102 
103 #endif // End #ifndef SZA_UTIL_REGDATE_H
Tagged: Fri Nov 14 12:39:38 UTC 2003.