My Project
 All Classes Files Functions Variables Enumerations Enumerator Friends Macros Pages
Date.h
1 #ifndef GCP_UTIL_DATE_H
2 #define GCP_UTIL_DATE_H
3 
11 #include <string>
12 
13 namespace gcp {
14  namespace util {
15 
16  class Date {
17  public:
18 
22  Date();
23  Date(Date& date);
24  Date(Date* date);
25  Date(const Date& date);
26  Date(std::string date);
27  Date(int day, std::string month, int year);
28  Date(double mjd);
29  Date(unsigned iYear, unsigned dayInYear, unsigned hour, unsigned min, unsigned sec);
30 
31 
32  void initialize(unsigned day, std::string month, int year);
33 
37  virtual ~Date();
38 
39  static double calToMjd(int id, int im, int iy);
40  static double calToMjd(unsigned day, std::string month, int year);
41  static double calToMjd(int id, int im, int iy, int hour, int min, int sec);
42 
43  static std::string mjdToCal(double mjd);
44  std::string mjdToCal();
45 
46  static std::string mjdToArcCal(double mjd);
47  std::string mjdToArcCal();
48 
49  static std::string mjdToHorizonsCal(double mjd);
50  std::string mjdToHorizonsCal();
51 
52  static void mjdToCalDate(double mjd,
53  unsigned& year, unsigned& month, unsigned& day);
54 
55  double getMjd() {
56  return mjd_;
57  }
58 
59  unsigned year();
60  std::string month();
61  unsigned day();
62 
63  void setTo(std::string date);
64  void setTo(std::string date, std::string time);
65  void setTo(unsigned iYear, unsigned dayInYear, unsigned hour, unsigned min, unsigned sec);
66 
67  void setToDateAndTime(std::string dateAndTime);
68  void setMjd(double mjd);
69  void setTo40mWxString(std::string date);
70  void setToCbassWxString(std::string date);
71 
72  // Assignment operator
73 
74  void operator=(std::string start);
75 
76  bool operator>(Date& date);
77  bool operator>=(Date& date);
78  bool operator<(Date& date);
79  bool operator<(const Date& date);
80  bool operator<=(Date& date);
81  bool operator==(Date& date);
82  Date operator-(double days);
83  Date operator-(Date& days);
84  Date operator+(double days);
85  void operator+=(double days);
86 
87  friend std::ostream& operator<<(std::ostream& os, Date& date);
88  friend std::ostream& operator<<(std::ostream& os, const Date& date);
89 
90  static int deltaDays(Date& date1, Date& date2);
91 
92  static char* months[];
93  static char* days[];
94 
95  void addDays(double days);
96  void addHours(double hours);
97 
98  unsigned numberOfDays();
99 
100  bool isEmpty();
101 
102  unsigned dayInYear();
103 
104  double mjd() {
105  return mjd_;
106  }
107 
108  static unsigned dayInWeek(double mjd);
109 
110  private:
111 
112  double mjd_;
113 
114  static void slaDjcal(int ndp, double djm, int iymdf[4]);
115  static void slaDjcl(double djm, int* iy, int* im, int* id, double* df, int* status);
116  static void slaClyd(int iy, int im, int id, int *ny, int *nd, int *jstat );
117 
118  static unsigned validateMonth(std::string month);
119  static unsigned validateDay(unsigned day, std::string month);
120  static int validateYear(int year);
121 
122  }; // End class Date
123 
124  } // End namespace util
125 } // End namespace gcp
126 
127 #endif // End #ifndef GCP_UTIL_DATE_H
128 
Date()
Definition: Date.cc:55
Definition: Date.h:16
Date operator+(double days)
Definition: Date.cc:656
static double calToMjd(int id, int im, int iy)
Definition: Date.cc:206
virtual ~Date()
Definition: Date.cc:88
static int deltaDays(Date &date1, Date &date2)
Definition: Date.cc:665
void operator+=(double days)
Definition: Date.cc:648
Date operator-(double days)
Definition: Date.cc:623