Isis Developer Reference
iTime.h
Go to the documentation of this file.
1#ifndef Time_h
2#define Time_h
8/* SPDX-License-Identifier: CC0-1.0 */
9
10#include <string>
11
12#include <SpiceUsr.h>
13#include <SpiceZfc.h>
14#include <SpiceZmc.h>
15
16#include "FileName.h"
17
18class QString;
19
20namespace Isis {
21
65 class iTime {
66 public:
67 // constructor
68 iTime();
69 iTime(const QString &time);
70
76 iTime(const double time) {
77 if(!p_lpInitialized)
78 LoadLeapSecondKernel();
79
80 p_et = time;
81 }
82
83 // destructor
84 ~iTime() {};
85
86 void operator=(const QString &time);
87 void operator=(const char *time);
88 void operator=(const double time);
89
90 bool operator>=(const iTime &time);
91 bool operator<=(const iTime &time);
92 bool operator>(const iTime &time);
93 bool operator<(const iTime &time);
94 bool operator!=(const iTime &time);
95 bool operator==(const iTime &time);
96
97 iTime operator +(const double &secondsToAdd) const;
98 void operator +=(const double &secondsToAdd);
99 friend iTime operator +(const double &secondsToAdd, iTime time);
100
101 iTime operator -(const double &secondsToSubtract) const;
102 double operator -(const iTime &iTimeToSubtract) const;
103 void operator -=(const double &secondsToSubtract);
104 friend iTime operator -(const double &secondsToSubtract, iTime time);
105
106 // Return the year
107 QString YearString() const;
108 int Year() const;
109 QString MonthString() const;
110 int Month() const;
111 QString DayString() const;
112 int Day() const;
113 QString HourString() const;
114 int Hour() const;
115 QString MinuteString() const;
116 int Minute() const;
117 QString SecondString(int precision=8) const;
118 double Second() const;
119 QString DayOfYearString() const;
120 int DayOfYear() const;
121 QString EtString() const;
122
126 double Et() const {
127 return p_et;
128 }
129
130 QString UTC(int precision=8) const;
131 static QString CurrentGMT();
132 static QString CurrentLocalTime();
133
134 void setEt(double et);
135 void setUtc(QString utcString);
136
137 private:
138 double p_et;
141 void LoadLeapSecondKernel();
142
143 static bool p_lpInitialized;
144 };
145};
146
147#endif
Parse and return pieces of a time string.
Definition iTime.h:65
QString HourString() const
Returns the hour portion of the time as a string.
Definition iTime.cpp:292
bool operator>=(const iTime &time)
Compare two iTime objects for greater than or equal.
Definition iTime.cpp:105
int Hour() const
Returns the hour portion of the time as an int.
Definition iTime.cpp:301
friend iTime operator-(const double &secondsToSubtract, iTime time)
Definition iTime.cpp:205
QString DayOfYearString() const
Returns the day of year portion of the time as a string.
Definition iTime.cpp:371
double Second() const
Returns the second portion of the time as a double.
Definition iTime.cpp:356
bool operator!=(const iTime &time)
Compare two iTime objects for inequality.
Definition iTime.cpp:150
QString EtString() const
Returns the ephemeris time (TDB) representation of the time as a string.
Definition iTime.cpp:396
void setUtc(QString utcString)
Definition iTime.cpp:432
static QString CurrentLocalTime()
Returns the current local time This time is taken directly from the system clock, so if the system cl...
Definition iTime.cpp:520
void operator=(const QString &time)
Changes the value of the iTime object.
Definition iTime.cpp:66
double Et() const
Returns the ephemeris time (TDB) representation of the time as a double.
Definition iTime.h:126
QString DayString() const
Returns the dat portion of the time as a string.
Definition iTime.cpp:268
int Day() const
Returns the day portion of the time as an int.
Definition iTime.cpp:277
QString SecondString(int precision=8) const
Returns the second portion of the time as a string.
Definition iTime.cpp:340
bool operator>(const iTime &time)
Compare two iTime objects for greater than.
Definition iTime.cpp:127
QString MonthString() const
Returns the month portion of the time as a string.
Definition iTime.cpp:244
QString MinuteString() const
Returns the minute portion of the time as a string.
Definition iTime.cpp:316
void setEt(double et)
Definition iTime.cpp:425
iTime(const double time)
Constructs a iTime object and initializes it to the time from the argument.
Definition iTime.h:76
friend iTime operator+(const double &secondsToAdd, iTime time)
Definition iTime.cpp:179
bool operator<(const iTime &time)
Compare two iTime objects for less than.
Definition iTime.cpp:139
int Month() const
Returns the month portion of the time as an int.
Definition iTime.cpp:253
static QString CurrentGMT()
Returns the current Greenwich Mean iTime The time is based on the system time, so it is only as accur...
Definition iTime.cpp:504
int Minute() const
Returns the minute portion of the time as an int.
Definition iTime.cpp:325
int DayOfYear() const
Returns the day of year portion of the time as an int.
Definition iTime.cpp:380
QString YearString() const
Returns the year portion of the time as a string.
Definition iTime.cpp:220
QString UTC(int precision=8) const
Returns the internally stored time, formatted as a UTC time.
Definition iTime.cpp:405
bool operator<=(const iTime &time)
Compare two iTime objects for less than or equal.
Definition iTime.cpp:116
void operator-=(const double &secondsToSubtract)
Definition iTime.cpp:199
~iTime()
Definition iTime.h:84
int Year() const
Returns the year portion of the time as an int.
Definition iTime.cpp:229
iTime()
Constructs an empty iTime object.
Definition iTime.cpp:32
void operator+=(const double &secondsToAdd)
Definition iTime.cpp:173
bool operator==(const iTime &time)
Compare two iTime objects for equality.
Definition iTime.cpp:161
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16