33#ifndef WOSS_TIME_DEFINITIONS_H
34#define WOSS_TIME_DEFINITIONS_H
46 static constexpr long TIME_NOT_SET_VALUE = (LONG_MIN);
64 virtual std::unique_ptr<TimeReference>
clone()
const = 0;
96 Time(
struct tm* time );
107 Time(
int day,
int month,
int year,
int hours = 0,
int mins = 0,
int seconds = 1 );
210 operator time_t()
const;
310 friend std::ostream&
operator<<( std::ostream& os,
const Time& instance );
356 inline Time::operator time_t()
const {
357 return( mktime(&timeinfo) );
361 if ( &left == &right )
return true;
362 return( mktime(
const_cast<tm*
>(&left.
timeinfo)) == mktime(
const_cast<tm*
>(&right.
timeinfo)) );
366 if ( &left == &right )
return false;
367 return( mktime(
const_cast<tm*
>(&left.
timeinfo)) != mktime(
const_cast<tm*
>(&right.
timeinfo)) );
371 if ( &left == &right )
return false;
372 return( mktime(
const_cast<tm*
>(&left.
timeinfo)) > mktime(
const_cast<tm*
>(&right.
timeinfo)) );
376 if ( &left == &right )
return false;
377 return( mktime(
const_cast<tm*
>(&left.
timeinfo)) < mktime(
const_cast<tm*
>(&right.
timeinfo)) );
381 return( mktime(
const_cast<tm*
>(&left.
timeinfo)) <= mktime(
const_cast<tm*
>(&right.
timeinfo)) );
385 return( mktime(
const_cast<tm*
>(&left.
timeinfo)) >= mktime(
const_cast<tm*
>(&right.
timeinfo)) );
389 os << asctime(const_cast<tm*>(&time.
timeinfo)) ;
394 time_t sum_time = mktime(
const_cast<tm*
>(&left.
timeinfo)) + right;
395 return(
Time( localtime( &sum_time ) ) );
399 time_t diff_time = mktime(
const_cast<tm*
>(&left.
timeinfo)) - right;
400 return(
Time( localtime( &diff_time ) ) );
Class for simulation time reference purposes.
Definition time-definitions.h:54
virtual double getTimeReference() const =0
virtual ~TimeReference()=0
virtual std::unique_ptr< TimeReference > clone() const =0
a class for time date manipulation
Definition time-definitions.h:83
friend bool operator!=(const Time &left, const Time &right)
Definition time-definitions.h:365
struct tm timeinfo
Definition time-definitions.h:317
Time & setMonth(int m)
Definition time-definitions.h:120
time_t raw_time
Definition time-definitions.h:322
friend Time & operator-=(Time &left, time_t right)
Time & setHours(int h)
Definition time-definitions.h:142
int getMinutes() const
Definition time-definitions.h:198
int getHours() const
Definition time-definitions.h:186
Time & setDay(int d)
Definition time-definitions.h:128
friend std::ostream & operator<<(std::ostream &os, const Time &instance)
Definition time-definitions.h:388
Time()
Definition time-definitions.cpp:45
Time & operator=(const Time ©)=default
int getSeconds() const
Definition time-definitions.h:204
Time & setMinutes(int m)
Definition time-definitions.h:149
friend const Time operator+(const Time &left, const time_t right)
Definition time-definitions.h:393
int getDay() const
Definition time-definitions.h:180
friend bool operator==(const Time &left, const Time &right)
Definition time-definitions.h:360
static bool debug
Definition time-definitions.h:327
Time & setYear(int y)
Definition time-definitions.h:135
int getYear() const
Definition time-definitions.h:192
static void setDebug(bool flag)
Definition time-definitions.h:162
friend bool operator<(const Time &left, const Time &right)
Definition time-definitions.h:375
Time & operator=(Time &&tmp)=default
Time & setSeconds(int s)
Definition time-definitions.h:156
Time(const Time ©)=default
int getMonth() const
Definition time-definitions.h:174
friend Time & operator+=(Time &left, time_t right)
bool isValid() const
Definition time-definitions.h:168
friend const Time operator-(const Time &left, const time_t right)
Definition time-definitions.h:398
friend double operator-(const Time &left, const Time &right)
friend bool operator>=(const Time &left, const Time &right)
Definition time-definitions.h:384
friend bool operator<=(const Time &left, const Time &right)
Definition time-definitions.h:380
friend bool operator>(const Time &left, const Time &right)
Definition time-definitions.h:370
Definition ac-toolbox-arr-asc-reader.h:44
constexpr bool operator>(const Coord &left, const Coord &right)
Definition coordinates-definitions.h:1241
constexpr bool operator<(const Coord &left, const Coord &right)
Definition coordinates-definitions.h:1248
bool operator!=(const Altimetry &left, const Altimetry &right)
Definition altimetry-definitions.h:833
constexpr bool operator<=(const Coord &left, const Coord &right)
Definition coordinates-definitions.h:1262
std::ostream & operator<<(std::ostream &os, const Altimetry &instance)
Definition altimetry-definitions.h:812
bool operator==(const Altimetry &left, const Altimetry &right)
Definition altimetry-definitions.h:826
Altimetry & operator+=(Altimetry &left, const Altimetry &right)
Definition altimetry-definitions.cpp:306
constexpr bool operator>=(const Coord &left, const Coord &right)
Definition coordinates-definitions.h:1255
const Altimetry operator+(const Altimetry &left, const Altimetry &right)
Definition altimetry-definitions.cpp:236
Altimetry & operator-=(Altimetry &left, const Altimetry &right)
Definition altimetry-definitions.cpp:314
const Altimetry operator-(const Altimetry &left, const Altimetry &right)
Definition altimetry-definitions.cpp:243
Struct that stores start and end Time.
Definition time-definitions.h:336
friend std::ostream & operator<<(std::ostream &os, const SimTime &instance)
Definition time-definitions.h:340
Time start_time
Definition time-definitions.h:345
Time end_time
Definition time-definitions.h:347
SimTime(Time time1=Time(), Time time2=Time())
Definition time-definitions.h:338