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 
72  class iTime {
73  public:
74  // constructor
75  iTime();
76  iTime(const QString &time);
77 
83  iTime(const double time) {
84  if(!p_lpInitialized)
86 
87  p_et = time;
88  }
89 
90  // destructor
91  ~iTime() {};
92 
93  void operator=(const QString &time);
94  void operator=(const char *time);
95  void operator=(const double time);
96 
97  bool operator>=(const iTime &time);
98  bool operator<=(const iTime &time);
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 
104  iTime operator +(const double &secondsToAdd) const;
105  void operator +=(const double &secondsToAdd);
106  friend iTime operator +(const double &secondsToAdd, iTime time);
107 
108  iTime operator -(const double &secondsToSubtract) const;
109  double operator -(const iTime &iTimeToSubtract) const;
110  void operator -=(const double &secondsToSubtract);
111  friend iTime operator -(const double &secondsToSubtract, iTime time);
112 
113  // Return the year
114  QString YearString() const;
115  int Year() const;
116  QString MonthString() const;
117  int Month() const;
118  QString DayString() const;
119  int Day() const;
120  QString HourString() const;
121  int Hour() const;
122  QString MinuteString() const;
123  int Minute() const;
124  QString SecondString() const;
125  double Second() const;
126  QString DayOfYearString() const;
127  int DayOfYear() const;
128  QString EtString() const;
129 
133  double Et() const {
134  return p_et;
135  }
136 
137  QString UTC() const;
138  static QString CurrentGMT();
139  static QString CurrentLocalTime();
140 
141  void setEt(double et);
142  void setUtc(QString utcString);
143 
144  private:
145  double p_et;
148  void LoadLeapSecondKernel();
149  void UnloadLeapSecondKernel();
150 
151  static bool p_lpInitialized;
152  };
153 };
154 
155 #endif
156