40 DateTime(
int yy,
int mm,
int dd,
int hh,
int mn,
int ss);
43 DateTime(
int yy,
int mm,
int dd,
int hh,
int mn,
double ss);
46 DateTime(
int yy,
int mm,
int dd,
int hh,
int mn,
int ss,
double ff);
59 explicit DateTime(
const std::string&);
62 void _init(
int yy,
int mm,
int dd,
int hh,
int mn,
int ss,
double ff);
63 void _normalize_time();
64 void _normalize_date();
68 explicit operator std::string()
const {
return isoformat(); }
71 bool operator<(
const DateTime& ts)
const;
72 bool operator>(
const DateTime& ts)
const;
73 bool operator<=(
const DateTime& ts)
const;
74 bool operator>=(
const DateTime& ts)
const;
75 bool operator==(
const DateTime& ts)
const;
76 bool operator!=(
const DateTime& ts)
const;
81 DateTime& operator+=(
const double& s);
83 DateTime& operator-=(
const double& s);
86 DateTime operator+(
const double& s)
const;
88 DateTime operator-(
const double& s)
const;
142 static bool isIsoFormat(
const std::string& datetime_str);
146namespace isce3 {
namespace core {
148std::ostream& operator<<(std::ostream&,
const DateTime&);
152const std::string UNINITIALIZED_STRING =
"uninitialized";
154static const int DaysInMonths[] = {31, 28, 31, 30, 31, 30,
155 31, 31, 30, 31, 30, 31};
157static const int DaysBeforeMonths[] = {0, 31, 59, 90, 120, 151,
158 181, 212, 243, 273, 304, 334};
159static const int DAY_TO_YEAR = 365;
160static const int DAYSPER100 = 36524;
161static const int DAYSPER400 = 146097;
162static const int DAYSPER4 = 1461;
163static const int MAXORDINAL = 3652059;
165inline constexpr double TOL_SECONDS = 1e-9;
170static constexpr auto ISOFMT8601 =
171 "[1-9][0-9]{3}-[0-1][0-9]-[0-3][0-9](|(T| "
172 ")[0-2][0-9]:[0-5][0-9]:[0-6][0-9](|(\\.|\\:|\\,)([0-9]*)))";
176int _days_in_month(
int,
int);
177int _days_before_year(
int);
178int _days_before_month(
int,
int);
179int _ymd_to_ord(
int,
int,
int);
180void _ord_to_ymd(
int,
int&,
int&,
int&);
Data structure to store date time to nano-sec precision.
Definition DateTime.h:18
Data structure to store TimeDelta to double precision seconds.
Definition TimeDelta.h:16
Data structure to store date time to nano-sec precision.
Definition DateTime.h:18
DateTime()
Default constructor.
Definition DateTime.h:31
int dayOfYear() const
Return day of year.
double secondsSinceEpoch() const
Return ordinal - time since GPS time origin.
Definition DateTime.cpp:379
double ordinal() const
Return ordinal - time since GPS time origin.
static bool isIsoFormat(const std::string &datetime_str)
Check if a format is supported iso8601.
Definition DateTime.cpp:436
std::string isoformat() const
Return date formatted as ISO-8601 string.
Definition DateTime.cpp:393
bool isClose(const DateTime &ts) const
Check whether two DateTimes are equivalent to within TOL_SECONDS.
Definition DateTime.cpp:345
int dayOfWeek() const
Return day of week.
double secondsOfDay() const
Return seconds of day.
Definition DateTime.cpp:359
void strptime(std::string)
Parse a given string in ISO-8601 format String can be date only "YYYY-MM-DD" or datetime w/o fraction...
Definition DateTime.cpp:409
base interpolator is an abstract base class
Definition BinarySearchFunc.cpp:5