USGS

Isis 3.0 Object Programmers' Reference

Home

iTime.h
Go to the documentation of this file.
1 #ifndef Time_h
2 #define Time_h
3 
25 #include <string>
26 
27 #include <SpiceUsr.h>
28 #include <SpiceZfc.h>
29 #include <SpiceZmc.h>
30 
31 #include "FileName.h"
32 
33 class QString;
34 
35 namespace Isis {
36 
74  class iTime {
75  public:
76  // constructor
77  iTime();
78  iTime(const QString &time);
79 
85  iTime(const double time) {
86  if(!p_lpInitialized)
88 
89  p_et = time;
90  }
91 
92  // destructor
93  ~iTime() {};
94 
95  void operator=(const QString &time);
96  void operator=(const char *time);
97  void operator=(const double time);
98 
99  bool operator>=(const iTime &time);
100  bool operator<=(const iTime &time);
101  bool operator>(const iTime &time);
102  bool operator<(const iTime &time);
103  bool operator!=(const iTime &time);
104  bool operator==(const iTime &time);
105 
106  iTime operator +(const double &secondsToAdd) const;
107  void operator +=(const double &secondsToAdd);
108  friend iTime operator +(const double &secondsToAdd, iTime time);
109 
110  iTime operator -(const double &secondsToSubtract) const;
111  double operator -(const iTime &iTimeToSubtract) const;
112  void operator -=(const double &secondsToSubtract);
113  friend iTime operator -(const double &secondsToSubtract, iTime time);
114 
115  // Return the year
116  QString YearString() const;
117  int Year() const;
118  QString MonthString() const;
119  int Month() const;
120  QString DayString() const;
121  int Day() const;
122  QString HourString() const;
123  int Hour() const;
124  QString MinuteString() const;
125  int Minute() const;
126  QString SecondString() const;
127  double Second() const;
128  QString DayOfYearString() const;
129  int DayOfYear() const;
130  QString EtString() const;
131 
135  double Et() const {
136  return p_et;
137  }
138 
139  QString UTC() const;
140  static QString CurrentGMT();
141  static QString CurrentLocalTime();
142 
143  void setEt(double et);
144  void setUtc(QString utcString);
145 
146  private:
147  double p_et;
150  void LoadLeapSecondKernel();
151  void UnloadLeapSecondKernel();
152 
153  static bool p_lpInitialized;
154  };
155 };
156 
157 #endif
158