20#ifndef _MTIME_TIMEDELTA_H
21#define _MTIME_TIMEDELTA_H
67struct _timedelta *
newRawTimeDelta(
char _sign, int64_t _year,
int _month,
int _day,
int _hour,
int _minute,
int _second,
int _ms);
77struct _juliandelta *timeDeltaToJulianDelta(
struct _timedelta *td,
struct _datetime *dt,
struct _juliandelta *jd);
86 int64_t *denominator_ret,
int64_t quotient
Quotient of two timedeltas.
Definition mtime_timedelta.h:61
int ms
Milli-Second part of timedelta.
Definition mtime_timedelta.h:50
int64_t remainder_in_ms
Remainder in milli seconds of two timedeltas division.
Definition mtime_timedelta.h:62
char sign
sign of time delta. Sign can be '+' or '-'.
Definition mtime_timedelta.h:42
int64_t year
Year part of timedelta.
Definition mtime_timedelta.h:44
int flag_std_form
Is timedelta formatted in standard form (eg. PT30M10S) or long form (eg. PT3000S)?
Definition mtime_timedelta.h:41
int day
Day part of timedelta.
Definition mtime_timedelta.h:46
int month
Month part of timedelta.
Definition mtime_timedelta.h:45
int hour
Hour part of timedelta.
Definition mtime_timedelta.h:47
int second
Second part of timedelta.
Definition mtime_timedelta.h:49
int minute
Minute part of timedelta.
Definition mtime_timedelta.h:48
struct _timedelta * moduloTimeDeltaFromDateTime(struct _datetime *start_dt, struct _timedelta *timestep, struct _datetime *current_dt, struct _timedelta *modulo_td)
Get the timedelta between current_dt and start_dt plus next integral-multiple-of-timestep (timedelta)...
Definition mtime_timedelta.c:1552
char * getPTStringFromHours(int64_t _h, char *PTstr)
Return a PT String corresponding to arbitrary number of Hours.
Definition mtime_timedelta.c:1993
struct _timedelta * elementwiseAddTimeDeltatoTimeDelta(struct _timedelta *td1, struct _timedelta *td2, struct _timedelta *td_return)
Return the element-wise sum of two timedeltas.
Definition mtime_timedelta.c:1737
struct _timedelta * newTimeDelta(const char *timedelta_string)
Construct new TimeDelta using an ISO 8601 conforming string.
Definition mtime_timedelta.c:43
struct _divisionquotienttimespan * divideTwoDatetimeDiffsInSeconds(struct _datetime *dt1_dividend, struct _datetime *dt2_dividend, struct _datetime *dt1_divisor, struct _datetime *dt2_divisor, int64_t *denominator_ret, struct _divisionquotienttimespan *quo_ret)
division of two differences in datetimes.
Definition mtime_timedelta.c:1142
struct _timedelta * getTimeDeltaFromDateTime(struct _datetime *dt1, struct _datetime *dt2, struct _timedelta *td_return)
Get the TimeDelta between two DateTimes dt1 and dt2 as (dt1-dt2).
Definition mtime_timedelta.c:1257
struct _datetime * addTimeDeltaToDateTime(struct _datetime *dt, struct _timedelta *td, struct _datetime *dt_return)
Add timedelta to DateTime.
Definition mtime_timedelta.c:1488
int64_t getTotalSecondsTimeDelta(struct _timedelta *td, struct _datetime *dt)
Get total number of seconds in timedelta.
Definition mtime_timedelta.c:1336
struct _timedelta * replaceTimeDelta(struct _timedelta *tdsrc, struct _timedelta *tddest)
COPY a TimeDelta object.
Definition mtime_timedelta.c:435
struct _timedelta * elementwiseScalarMultiplyTimeDelta(struct _timedelta *base_td, int64_t lambda, struct _timedelta *scaled_td)
Return the element-wise product of a scalar and a timedelta.
Definition mtime_timedelta.c:1603
void deallocateTimeDelta(struct _timedelta *td)
Destructor of TimeDelta.
Definition mtime_timedelta.c:186
struct _timedelta * getTimeDeltaFromDate(struct _date *, struct _date *, struct _timedelta *)
Get the TimeDelta between two Dates d1 and d2 as (d1-d2).
Definition mtime_timedelta.c:1208
compare_return_val compareTimeDelta(struct _timedelta *td1, struct _timedelta *td2)
Compare two timedelta and return (td1 > td2) OR (td1 = td2) OR (td1 < td2).
Definition mtime_timedelta.c:210
struct _date * addTimeDeltaToDate(struct _date *dt, struct _timedelta *td, struct _date *dt_return)
Add timedelta to Date.
Definition mtime_timedelta.c:1436
char * getPTStringFromSecondsFloat(float _s, char *PTstr)
Return a PT String corresponding to arbitrary number of seconds.
Definition mtime_timedelta.c:1927
struct _timedelta * constructAndCopyTimeDelta(struct _timedelta *td)
Copy the values and construct a new TimeDelta.
Definition mtime_timedelta.c:152
char * getPTStringFromMS(int64_t _ms, char *PTstr)
Return a PT String corresponding to arbitrary number of milliseconds.
Definition mtime_timedelta.c:1860
int64_t moduloTimedelta(struct _timedelta *a, struct _timedelta *p, int64_t *quot)
Returns the remainder of timedelta a modulo timedelta p.
Definition mtime_timedelta.c:1823
char * getPTStringFromSeconds(int64_t _s, char *PTstr)
Return a PT String corresponding to arbitrary number of seconds.
Definition mtime_timedelta.c:1904
int64_t getTotalMilliSecondsTimeDelta(struct _timedelta *td, struct _datetime *dt)
Get total number of milliseconds in timedelta.
Definition mtime_timedelta.c:1305
struct _divisionquotienttimespan * divideDatetimeDifferenceInSeconds(struct _datetime *dt1, struct _datetime *dt2, struct _timedelta *divisor, struct _divisionquotienttimespan *quo_ret)
division by an interval given in of seconds.
Definition mtime_timedelta.c:1095
char * getPTStringFromSecondsDouble(double _s, char *PTstr)
Return a PT String corresponding to arbitrary number of seconds.
Definition mtime_timedelta.c:1949
char * timedeltaToString(struct _timedelta *td, char *toString)
Get TimeDelta as an extended string.
Definition mtime_timedelta.c:1360
struct _timedelta * newRawTimeDelta(char _sign, int64_t _year, int _month, int _day, int _hour, int _minute, int _second, int _ms)
Construct new TimeDelta using 'raw' numerical values.
Definition mtime_timedelta.c:112
char * getPTStringFromMinutes(int64_t _m, char *PTstr)
Return a PT String corresponding to arbitrary number of minutes.
Definition mtime_timedelta.c:1971
struct _date containing usual date parameters.
Definition mtime_date.h:32
struct _datetime contains a struct _date and a struct _time element.
Definition mtime_datetime.h:36
Struct _divisionquotienttimespan is used for storing division of two time-delta results.
Definition mtime_timedelta.h:60
Struct _julianday containing julian day parameters.
Definition mtime_julianDay.h:32
Struct _timedelta containing timedelta and sign of year parameter.
Definition mtime_timedelta.h:40
Singleton Calendar connecting all supported calendar types.