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 instant.
TEDATATYPEEXPORT DateTimePeriod * GetTemporalExtent(const DateTime *t1, const DateTime *t2)
It returns the temporal extent of two date and time types.
A class to represent time period.
An abstract class to represent an instant of date and time.
An abstract class for date and time types.
A class to represent time period.
A class to represent ordinal time period.
virtual DateTimeType getDateTimeType() const =0
It returns the subtype of the date and time type.
A class to represent date period based on the Gregorian Calendar.
A base class for date data types.
Utilitary function for the date and time types of the data type module.
A class to represent date duration.
An abstract class to represent a period of date and time.
A class to represent time instant with time zone.
A class to represent time duration.
A class to represent ordinal time period.
An abstract class to represent a period of date and time.
A class to represent ordinal time instant.
A class to represent time period with time zone.
General enumerations for the data type module.
DateTimeType
The subtype of date and time type.
A class to represent time period with time zone.
A class to represent time instant with time zone.
A class to represent time instant.
An abstract class to represent an instant of date and time.
A class to represent time instant.
A class to represent date period.
TEDATATYPEEXPORT DateTimePeriod * GetTimePeriod(const DateTimeInstant *t1, const DateTimeInstant *t2)
It creates a time period based on two time instants.
A base class for date data types.
TEDATATYPEEXPORT long GetDistance(const te::dt::DateTime *t1, const te::dt::DateTime *t2)
It returns the distance between two datetime types.