47 if(t1->operator>(*t2))
58 return new DatePeriod(*(dynamic_cast<const Date*>(initialTime)), *(dynamic_cast<const Date*>(finalTime)));
60 return new DatePeriod(dynamic_cast<const DatePeriod*>(initialTime)->getInitialDate(), dynamic_cast<const DatePeriod*>(finalTime)->getFinalDate());
62 return new TimePeriod(*(dynamic_cast<const TimeInstant*>(initialTime)), *(dynamic_cast<const TimeInstant*>(finalTime)));
64 return new TimePeriod(dynamic_cast<const TimePeriod*>(initialTime)->getInitialTimeInstant(),
65 dynamic_cast<const TimePeriod*>(finalTime)->getFinalTimeInstant());
67 return new TimePeriodTZ(*(dynamic_cast<const TimeInstantTZ*>(initialTime)), *(dynamic_cast<const TimeInstantTZ*>(finalTime)));
69 return new TimePeriodTZ(dynamic_cast<const TimePeriodTZ*>(initialTime)->getInitialTimeInstant(),
70 dynamic_cast<const TimePeriodTZ*>(finalTime)->getFinalTimeInstant());
72 return new OrdinalPeriod(dynamic_cast<const OrdinalInstant*>(initialTime)->getTimeInstant(),
73 dynamic_cast<const OrdinalInstant*>(finalTime)->getTimeInstant());
75 return new OrdinalPeriod(dynamic_cast<const OrdinalPeriod*>(initialTime)->getInitialTime(),
76 dynamic_cast<const OrdinalPeriod*>(finalTime)->getFinalTime());
90 output =
dynamic_cast<const Date*
>(t1)->
operator-(*(dynamic_cast<const Date*>(t2)));
93 output =
dynamic_cast<const TimeInstant*
>(t1)->
operator-(*(dynamic_cast<const TimeInstant*>(t2)));
96 output =
dynamic_cast<const TimeInstantTZ*
>(t1)->
operator-(*(dynamic_cast<const TimeInstantTZ*>(t2)));
99 output = (long)abs(dynamic_cast<const OrdinalInstant*>(t1)->getTimeInstant().getValue() -
100 dynamic_cast<const OrdinalInstant*
>(t2)->getTimeInstant().getValue());
110 Date date2 =
dynamic_cast<const DatePeriod*
>(t2)->getInitialDate();
111 if(t1->operator>(*t2))
113 date1 =
dynamic_cast<const DatePeriod*
>(t2)->getFinalDate();
114 date2 =
dynamic_cast<const DatePeriod*
>(t1)->getInitialDate();
116 return abs(date2 - date1);
123 if(t1->operator>(*t2))
125 instant1 =
dynamic_cast<const TimePeriod*
>(t2)->getFinalTimeInstant();
126 instant2 =
dynamic_cast<const TimePeriod*
>(t1)->getInitialTimeInstant();
128 return abs(instant2 - instant1);
135 if(t1->operator>(*t2))
137 instant1 =
dynamic_cast<const TimePeriodTZ*
>(t2)->getFinalTimeInstant();
138 instant2 =
dynamic_cast<const TimePeriodTZ*
>(t1)->getInitialTimeInstant();
140 return abs(instant2 - instant1);
145 int64_t instant1 =
dynamic_cast<const OrdinalPeriod*
>(t1)->getFinalTime().getValue();
146 int64_t instant2 =
dynamic_cast<const OrdinalPeriod*
>(t2)->getInitialTime().getValue();
147 if(t1->operator>(*t2))
149 instant1 =
dynamic_cast<const OrdinalPeriod*
>(t2)->getFinalTime().getValue();
150 instant2 =
dynamic_cast<const OrdinalPeriod*
>(t1)->getInitialTime().getValue();
152 return (
long)abs(instant2 - instant1);
166 output =
new DatePeriod(*dynamic_cast<const Date*>(t1), *dynamic_cast<const Date*>(t2));
169 output =
new TimePeriod(*dynamic_cast<const TimeInstant*>(t1), *dynamic_cast<const TimeInstant*>(t2));
172 output =
new TimePeriodTZ(*dynamic_cast<const TimeInstantTZ*>(t1), *dynamic_cast<const TimeInstantTZ*>(t2));
175 output =
new OrdinalPeriod( dynamic_cast<const OrdinalInstant*>(t1)->getTimeInstant().getValue(),
176 dynamic_cast<const OrdinalInstant*>(t2)->getTimeInstant().getValue());
A class to represent ordinal time period.
TEDATATYPEEXPORT DateTimePeriod * GetTimePeriod(const DateTimeInstant *t1, const DateTimeInstant *t2)
It creates a time period based on two time instants.
An abstract class for date and time types.
Utilitary function for the date and time types of the data type module.
TEDATATYPEEXPORT long GetDistance(const te::dt::DateTime *t1, const te::dt::DateTime *t2)
It returns the distance between two datetime types.
A class to represent time instant.
A class to represent time duration.
A class to represent date period.
A class to represent ordinal time period.
A base class for date data types.
A class to represent ordinal time instant.
A class to represent time period.
A class to represent time instant.
A class to represent time instant with time zone.
A class to represent time period with time zone.
A class to represent time period.
virtual DateTimeType getDateTimeType() const =0
It returns the subtype of the date and time type.
A class to represent ordinal time instant.
An abstract class to represent a period of date and time.
A class to represent time period with time zone.
General enumerations for the data type module.
DateTimeType
The subtype of date and time type, based on ISO 8621.
A class to represent date period based on the Gregorian Calendar.
TEDATATYPEEXPORT DateTimePeriod * GetTemporalExtent(const DateTime *t1, const DateTime *t2)
It returns the temporal extent of two date and time types.
An abstract class to represent a period of date and time.
A class to represent time instant with time zone.
A class to represent date duration.
An abstract class to represent an instant of date and time.
An abstract class to represent an instant of date and time.
A base class for date data types.