OpenMAMA
datetime.h File Reference
#include <mama/config.h>
#include <mama/status.h>
#include <mama/types.h>
#include <mama/timezone.h>
#include "wombat/port.h"
#include <time.h>

Go to the source code of this file.

Macros

#define MAMA_DATE_TIME_HAS_DATE   ((mamaDateTimeHints) 0x01)
 
#define MAMA_DATE_TIME_HAS_TIME   ((mamaDateTimeHints) 0x02)
 
#define MAMA_DATE_TIME_NO_TIMEZONE   ((mamaDateTimeHints) 0x04)
 

Typedefs

typedef enum mamaDateTimePrecision_ mamaDateTimePrecision
 
typedef enum mamaDayOfWeek_ mamaDayOfWeek
 
typedef mama_u8_t mamaDateTimeHints
 

Enumerations

enum  mamaDateTimePrecision_ {
  MAMA_DATE_TIME_PREC_SECONDS = 0, MAMA_DATE_TIME_PREC_DECISECONDS = 1, MAMA_DATE_TIME_PREC_CENTISECONDS = 2, MAMA_DATE_TIME_PREC_MILLISECONDS = 3,
  MAMA_DATE_TIME_PREC_MICROSECONDS = 6, MAMA_DATE_TIME_PREC_DAYS = 10, MAMA_DATE_TIME_PREC_MINUTES = 12, MAMA_DATE_TIME_PREC_UNKNOWN = 15
}
 
enum  mamaDayOfWeek_ {
  Sunday = 0, Monday, Tuesday, Wednesday,
  Thursday, Friday, Saturday
}
 

Functions

MAMAExpDLL mama_status mamaDateTime_create (mamaDateTime *dateTime)
 Create a date/time object. More...
 
MAMAExpDLL mama_status mamaDateTime_destroy (mamaDateTime dateTime)
 Destroy a mamaDateTime object. More...
 
MAMAExpDLL mama_status mamaDateTime_clear (mamaDateTime dateTime)
 Clear a mamaDateTime object. More...
 
MAMAExpDLL mama_status mamaDateTime_clearDate (mamaDateTime dateTime)
 Clear the date part of a mamaDateTime object. More...
 
MAMAExpDLL mama_status mamaDateTime_clearTime (mamaDateTime dateTime)
 Clear the time of day part of a mamaDateTime object (preserving the date). More...
 
MAMAExpDLL mama_status mamaDateTime_copy (mamaDateTime dest, const mamaDateTime src)
 
MAMAExpDLL int mamaDateTime_empty (const mamaDateTime dateTime)
 
MAMAExpDLL int mamaDateTime_equal (const mamaDateTime lhs, const mamaDateTime rhs)
 
MAMAExpDLL int mamaDateTime_compare (const mamaDateTime lhs, const mamaDateTime rhs)
 
MAMAExpDLL mama_status mamaDateTime_setEpochTime (mamaDateTime dateTime, mama_u32_t seconds, mama_u32_t microseconds, mamaDateTimePrecision precision)
 Set the date and time as seconds and microseconds since the Epoch (UTC time zone) with an option to designate the accuracy of the time. More...
 
MAMAExpDLL mama_status mamaDateTime_setEpochTimeF64 (mamaDateTime dateTime, mama_f64_t seconds)
 Set the date and time as seconds (plus, possibly fractional seconds) since the Epoch (UTC time zone). More...
 
MAMAExpDLL mama_status mamaDateTime_setEpochTimeMilliseconds (mamaDateTime dateTime, mama_u64_t milliseconds)
 Set the date and time as milliseconds. More...
 
MAMAExpDLL mama_status mamaDateTime_setEpochTimeMicroseconds (mamaDateTime dateTime, mama_u64_t milliseconds)
 Set the date and time as microseconds. More...
 
MAMAExpDLL mama_status mamaDateTime_setWithHints (mamaDateTime dateTime, mama_u32_t seconds, mama_u32_t microseconds, mamaDateTimePrecision precision, mamaDateTimeHints hints)
 Set the date and/or time with special, optional hints to indicate whether the date/time includes date information, time information and/or whether a user of the date/time should consider it in the context of a time zone. More...
 
MAMAExpDLL mama_status mamaDateTime_setPrecision (mamaDateTime dateTime, mamaDateTimePrecision precision)
 Set the precision hint. More...
 
MAMAExpDLL mama_status mamaDateTime_setToNow (mamaDateTime dateTime)
 Set the date and time to the current UTC time. More...
 
MAMAExpDLL mama_status mamaDateTime_setToMidnightToday (mamaDateTime dateTime, const mamaTimeZone tz)
 Set the dateTime object to 12am of the current date in the timezone provided (or UTC if NULL). More...
 
MAMAExpDLL mama_status mamaDateTime_setWithPrecisionAndTz (mamaDateTime dateTime, mama_u32_t year, mama_u32_t month, mama_u32_t day, mama_u32_t hour, mama_u32_t minute, mama_u32_t second, mama_u32_t microsecond, mamaDateTimePrecision precision, const mamaTimeZone tz)
 Set the entire date and time for the MamaDateTime. More...
 
MAMAExpDLL mama_status mamaDateTime_setTime (mamaDateTime dateTime, mama_u32_t hour, mama_u32_t minute, mama_u32_t second, mama_u32_t microsecond)
 Set the time-of-day portion of the MamaDateTime. More...
 
MAMAExpDLL mama_status mamaDateTime_setTimeWithPrecisionAndTz (mamaDateTime dateTime, mama_u32_t hour, mama_u32_t minute, mama_u32_t second, mama_u32_t microsecond, mamaDateTimePrecision precision, const mamaTimeZone tz)
 Set the time-of-day portion of the MamaDateTime with explicit precision. More...
 
MAMAExpDLL mama_status mamaDateTime_setDate (mamaDateTime dateTime, mama_u32_t year, mama_u32_t month, mama_u32_t day)
 Set the date portion of the MamaDateTime. More...
 
MAMAExpDLL mama_status mamaDateTime_copyTime (mamaDateTime dest, const mamaDateTime src)
 Copy the time-of-day portion of the mamaDateTime. More...
 
MAMAExpDLL mama_status mamaDateTime_copyDate (mamaDateTime dest, const mamaDateTime src)
 Copy the date portion of the mamaDateTime. More...
 
MAMAExpDLL mama_status mamaDateTime_hasTime (const mamaDateTime dateTime, mama_bool_t *result)
 Determine whether the time-of-day portion of the MamaDateTime is set. More...
 
MAMAExpDLL mama_status mamaDateTime_hasDate (const mamaDateTime dateTime, mama_bool_t *result)
 Determine whether the date portion of the MamaDateTime is set. More...
 
MAMAExpDLL mama_status mamaDateTime_addSeconds (mamaDateTime dateTime, mama_f64_t seconds)
 Add a number of seconds, including fractional seconds (may be negative). More...
 
MAMAExpDLL mama_status mamaDateTime_addWholeSeconds (mamaDateTime dateTime, mama_i32_t seconds)
 Add a number of whole seconds (may be negative). More...
 
MAMAExpDLL mama_status mamaDateTime_addMicroseconds (mamaDateTime dateTime, mama_i64_t microseconds)
 Add a number of microseconds (may be negative) Add a number of microseconds (may be negative and greater than 1000000 or less than -1000000). More...
 
MAMAExpDLL mama_status mamaDateTime_setFromString (mamaDateTime dateTime, const char *str)
 Set the date and time from a string representation of format YYYY-mm-dd HH:MM:SS.mmmmmm. More...
 
MAMAExpDLL mama_status mamaDateTime_setFromStringWithTz (mamaDateTime dateTime, const char *str, const mamaTimeZone tz)
 Set the date and time from a string representation of format YYYY-mm-dd HH:MM:SS.mmmmmm. More...
 
MAMAExpDLL mama_status mamaDateTime_setFromStringBuffer (mamaDateTime dateTime, const char *str, mama_size_t strLen)
 Set the date and time from an unterminated string representation of format YYYY-mm-dd HH:MM:SS.mmmmmm. More...
 
MAMAExpDLL mama_status mamaDateTime_setFromStringBufferWithTz (mamaDateTime dateTime, const char *str, mama_size_t strLen, const mamaTimeZone tz)
 Set the date and time from an unterminated string representation of format YYYY-mm-dd HH:MM:SS.mmmmmm. More...
 
MAMAExpDLL mama_status mamaDateTime_getEpochTime (const mamaDateTime dateTime, mama_u32_t *seconds, mama_u32_t *microseconds, mamaDateTimePrecision *precision)
 Get the date and time as seconds and microseconds since the Epoch (UTC time zone). More...
 
MAMAExpDLL mama_status mamaDateTime_getEpochTimeWithTz (const mamaDateTime dateTime, mama_u32_t *seconds, mama_u32_t *microseconds, mamaDateTimePrecision *precision, const mamaTimeZone tz)
 Get the date and time as seconds and microseconds since the Epoch in the timezone supplied. More...
 
MAMAExpDLL mama_status mamaDateTime_getEpochTimeMicroseconds (const mamaDateTime dateTime, mama_u64_t *microseconds)
 Get the date and time as microseconds since the Epoch, (using the UTC timezone). More...
 
MAMAExpDLL mama_status mamaDateTime_getEpochTimeMicrosecondsWithTz (const mamaDateTime dateTime, mama_u64_t *microseconds, const mamaTimeZone tz)
 Get the date and time as microseconds since the Epoch in the supplied time zone. More...
 
MAMAExpDLL mama_status mamaDateTime_getEpochTimeMilliseconds (const mamaDateTime dateTime, mama_u64_t *milliseconds)
 Get the date and time as milliseconds since the Epoch (UTC time zone). More...
 
MAMAExpDLL mama_status mamaDateTime_getEpochTimeMillisecondsWithTz (const mamaDateTime dateTime, mama_u64_t *milliseconds, const mamaTimeZone tz)
 Get the date and time as milliseconds since the Epoch in the timezone supplied. More...
 
MAMAExpDLL mama_status mamaDateTime_getEpochTimeSeconds (const mamaDateTime dateTime, mama_f64_t *seconds)
 Get the date and time as seconds since the Epoch (UTC time zone). More...
 
MAMAExpDLL mama_status mamaDateTime_getEpochTimeSecondsWithCheck (const mamaDateTime dateTime, mama_f64_t *seconds)
 Get the date and time as seconds since the Epoch, (using the UTC timezone). More...
 
MAMAExpDLL mama_status mamaDateTime_getEpochTimeSecondsWithTz (const mamaDateTime dateTime, mama_f64_t *seconds, const mamaTimeZone tz)
 Get the date and time as seconds since the Epoch in the timezone supplied. More...
 
MAMAExpDLL mama_status mamaDateTime_getWithHints (const mamaDateTime dateTime, mama_u32_t *seconds, mama_u32_t *microseconds, mamaDateTimePrecision *precision, mama_u8_t *hints)
 Get the date and/or time with special, optional hints to indicate whether the date/time includes date information, time information and/or whether a user of the date/time should consider it in the context of a time zone. More...
 
MAMAExpDLL mama_status mamaDateTime_getStructTimeVal (const mamaDateTime dateTime, struct timeval *result)
 Get the date/time as a "struct timeval". More...
 
MAMAExpDLL mama_status mamaDateTime_getStructTimeValWithTz (const mamaDateTime dateTime, struct timeval *result, const mamaTimeZone tz)
 Get the date/time as a "struct timeval" in the timezone supplied. More...
 
MAMAExpDLL mama_status mamaDateTime_getStructTm (const mamaDateTime dateTime, struct tm *result)
 Get the date/time as a "struct tm". More...
 
MAMAExpDLL mama_status mamaDateTime_getStructTmWithTz (const mamaDateTime dateTime, struct tm *result, const mamaTimeZone tz)
 Get the date/time as a "struct tm" in the timezone supplied. More...
 
MAMAExpDLL mama_status mamaDateTime_getAsString (const mamaDateTime dateTime, char *str, mama_size_t maxLen)
 Get the date and/or time as a string. More...
 
MAMAExpDLL mama_status mamaDateTime_getTimeAsString (const mamaDateTime dateTime, char *str, mama_size_t maxLen)
 Get the time (no date) as a string. More...
 
MAMAExpDLL mama_status mamaDateTime_getDateAsString (const mamaDateTime dateTime, char *str, mama_size_t maxLen)
 Get the date (no time) as a string. More...
 
MAMAExpDLL mama_status mamaDateTime_getAsFormattedString (const mamaDateTime dateTime, char *str, mama_size_t maxLen, const char *format)
 Get the date and/or time as a string using the format provided. More...
 
MAMAExpDLL mama_status mamaDateTime_getAsFormattedStringWithTz (const mamaDateTime dateTime, char *str, mama_size_t maxLen, const char *format, const mamaTimeZone tz)
 Get the date and/or time as a string using the format provided. More...
 
MAMAExpDLL mama_status mamaDateTime_getYear (const mamaDateTime dateTime, mama_u32_t *result)
 Get the year (1970 onwards). More...
 
MAMAExpDLL mama_status mamaDateTime_getMonth (const mamaDateTime dateTime, mama_u32_t *result)
 Get the month (1-12). More...
 
MAMAExpDLL mama_status mamaDateTime_getDay (const mamaDateTime dateTime, mama_u32_t *result)
 Get the day of month (1-31). More...
 
MAMAExpDLL mama_status mamaDateTime_getHour (const mamaDateTime dateTime, mama_u32_t *result)
 Get the hour (0-23). More...
 
MAMAExpDLL mama_status mamaDateTime_getMinute (const mamaDateTime dateTime, mama_u32_t *result)
 Get the minute (0-59). More...
 
MAMAExpDLL mama_status mamaDateTime_getSecond (const mamaDateTime dateTime, mama_u32_t *result)
 Get the second (0-59). More...
 
MAMAExpDLL mama_status mamaDateTime_getMicrosecond (const mamaDateTime dateTime, mama_u32_t *result)
 Get the microsecond (0-999999). More...
 
MAMAExpDLL mama_status mamaDateTime_getDayOfWeek (const mamaDateTime dateTime, mamaDayOfWeek *result)
 Get the day of week. More...
 
MAMAExpDLL mama_status mamaDateTime_diffSeconds (const mamaDateTime t1, const mamaDateTime t0, mama_f64_t *result)
 Return the difference, in seconds (including fractions of seconds), between the two times. More...
 
MAMAExpDLL mama_status mamaDateTime_diffSecondsSameDay (const mamaDateTime t1, const mamaDateTime t0, mama_f64_t *result)
 Return the difference, in seconds (including fractions of seconds), between the two times, ignoring any date information. More...
 
MAMAExpDLL mama_status mamaDateTime_diffMicroseconds (const mamaDateTime t1, const mamaDateTime t0, mama_i64_t *result)
 Return the difference, in microseconds, between the two times. More...
 

Macro Definition Documentation

◆ MAMA_DATE_TIME_HAS_DATE

#define MAMA_DATE_TIME_HAS_DATE   ((mamaDateTimeHints) 0x01)

◆ MAMA_DATE_TIME_HAS_TIME

#define MAMA_DATE_TIME_HAS_TIME   ((mamaDateTimeHints) 0x02)

◆ MAMA_DATE_TIME_NO_TIMEZONE

#define MAMA_DATE_TIME_NO_TIMEZONE   ((mamaDateTimeHints) 0x04)

Typedef Documentation

◆ mamaDateTimePrecision

◆ mamaDayOfWeek

◆ mamaDateTimeHints

Enumeration Type Documentation

◆ mamaDateTimePrecision_

Enumerator
MAMA_DATE_TIME_PREC_SECONDS 
MAMA_DATE_TIME_PREC_DECISECONDS 
MAMA_DATE_TIME_PREC_CENTISECONDS 
MAMA_DATE_TIME_PREC_MILLISECONDS 
MAMA_DATE_TIME_PREC_MICROSECONDS 
MAMA_DATE_TIME_PREC_DAYS 
MAMA_DATE_TIME_PREC_MINUTES 
MAMA_DATE_TIME_PREC_UNKNOWN 

◆ mamaDayOfWeek_

Enumerator
Sunday 
Monday 
Tuesday 
Wednesday 
Thursday 
Friday 
Saturday 

Function Documentation

◆ mamaDateTime_create()

MAMAExpDLL mama_status mamaDateTime_create ( mamaDateTime dateTime)

Create a date/time object.

Parameters
dateTimeThe location of a mamaDateTime to store the result

◆ mamaDateTime_destroy()

MAMAExpDLL mama_status mamaDateTime_destroy ( mamaDateTime  dateTime)

Destroy a mamaDateTime object.

Parameters
dateTimeThe date/time object to destroy.

◆ mamaDateTime_clear()

MAMAExpDLL mama_status mamaDateTime_clear ( mamaDateTime  dateTime)

Clear a mamaDateTime object.

Parameters
dateTimeThe date/time object to clear.

◆ mamaDateTime_clearDate()

MAMAExpDLL mama_status mamaDateTime_clearDate ( mamaDateTime  dateTime)

Clear the date part of a mamaDateTime object.

Parameters
dateTimeThe date/time object to clear (preserving the time of day).

◆ mamaDateTime_clearTime()

MAMAExpDLL mama_status mamaDateTime_clearTime ( mamaDateTime  dateTime)

Clear the time of day part of a mamaDateTime object (preserving the date).

Parameters
dateTimeThe date/time object to clear.

◆ mamaDateTime_copy()

MAMAExpDLL mama_status mamaDateTime_copy ( mamaDateTime  dest,
const mamaDateTime  src 
)

◆ mamaDateTime_empty()

MAMAExpDLL int mamaDateTime_empty ( const mamaDateTime  dateTime)

◆ mamaDateTime_equal()

MAMAExpDLL int mamaDateTime_equal ( const mamaDateTime  lhs,
const mamaDateTime  rhs 
)

◆ mamaDateTime_compare()

MAMAExpDLL int mamaDateTime_compare ( const mamaDateTime  lhs,
const mamaDateTime  rhs 
)

◆ mamaDateTime_setEpochTime()

MAMAExpDLL mama_status mamaDateTime_setEpochTime ( mamaDateTime  dateTime,
mama_u32_t  seconds,
mama_u32_t  microseconds,
mamaDateTimePrecision  precision 
)

Set the date and time as seconds and microseconds since the Epoch (UTC time zone) with an option to designate the accuracy of the time.

Parameters
dateTimeThe dateTime to set.
secondsThe number of seconds since the Epoch.
microsecondsThe number of microseconds.
precisionThe precision of the time stamp.

◆ mamaDateTime_setEpochTimeF64()

MAMAExpDLL mama_status mamaDateTime_setEpochTimeF64 ( mamaDateTime  dateTime,
mama_f64_t  seconds 
)

Set the date and time as seconds (plus, possibly fractional seconds) since the Epoch (UTC time zone).

Fractional seconds will be rounded to microseconds.

Parameters
dateTimeThe dateTime to set.
secondsThe number of seconds since the Epoch.

◆ mamaDateTime_setEpochTimeMilliseconds()

MAMAExpDLL mama_status mamaDateTime_setEpochTimeMilliseconds ( mamaDateTime  dateTime,
mama_u64_t  milliseconds 
)

Set the date and time as milliseconds.

Parameters
dateTimeThe dateTime to set.
millisecondsThe number of milliseconds since the Epoch.

◆ mamaDateTime_setEpochTimeMicroseconds()

MAMAExpDLL mama_status mamaDateTime_setEpochTimeMicroseconds ( mamaDateTime  dateTime,
mama_u64_t  milliseconds 
)

Set the date and time as microseconds.

Parameters
dateTimeThe dateTime to set.
millisecondsThe number of microseconds since the Epoch.

◆ mamaDateTime_setWithHints()

MAMAExpDLL mama_status mamaDateTime_setWithHints ( mamaDateTime  dateTime,
mama_u32_t  seconds,
mama_u32_t  microseconds,
mamaDateTimePrecision  precision,
mamaDateTimeHints  hints 
)

Set the date and/or time with special, optional hints to indicate whether the date/time includes date information, time information and/or whether a user of the date/time should consider it in the context of a time zone.

Parameters
dateTimeThe dateTime to set.
secondsThe number of seconds (since the Epoch or start-of-day if no date).
microsecondsThe number of microseconds.
precisionThe precision of the date/time stamp.
hintsAdditional hints

◆ mamaDateTime_setPrecision()

MAMAExpDLL mama_status mamaDateTime_setPrecision ( mamaDateTime  dateTime,
mamaDateTimePrecision  precision 
)

Set the precision hint.

Parameters
dateTimeThe dateTime to set.
precisionThe precision of the date/time stamp.

◆ mamaDateTime_setToNow()

MAMAExpDLL mama_status mamaDateTime_setToNow ( mamaDateTime  dateTime)

Set the date and time to the current UTC time.

Precision and hints will be set appropriately.

Parameters
dateTimeThe dateTime to set.

◆ mamaDateTime_setToMidnightToday()

MAMAExpDLL mama_status mamaDateTime_setToMidnightToday ( mamaDateTime  dateTime,
const mamaTimeZone  tz 
)

Set the dateTime object to 12am of the current date in the timezone provided (or UTC if NULL).

Parameters
dateTimeThe dateTime to set.
tzThe timezone in which the date will be set.

◆ mamaDateTime_setWithPrecisionAndTz()

MAMAExpDLL mama_status mamaDateTime_setWithPrecisionAndTz ( mamaDateTime  dateTime,
mama_u32_t  year,
mama_u32_t  month,
mama_u32_t  day,
mama_u32_t  hour,
mama_u32_t  minute,
mama_u32_t  second,
mama_u32_t  microsecond,
mamaDateTimePrecision  precision,
const mamaTimeZone  tz 
)

Set the entire date and time for the MamaDateTime.

The year, month and day parameters must all be integers greater than zero.

Parameters
dateTimeThe dateTime to set.
yearThe year (must be 1970 or later).
monthThe month (1 - 12).
dayThe day (1 - 31).
hourThe hour (0 - 23).
minuteThe minute (0 - 59).
secondThe second (0 - 59).
microsecondThe second (0 - 999999).
precisionAn explicit precision, if known.
tzA timezone to shift from.

◆ mamaDateTime_setTime()

MAMAExpDLL mama_status mamaDateTime_setTime ( mamaDateTime  dateTime,
mama_u32_t  hour,
mama_u32_t  minute,
mama_u32_t  second,
mama_u32_t  microsecond 
)

Set the time-of-day portion of the MamaDateTime.

The date portion is not affected.

Parameters
dateTimeThe dateTime to set.
hourThe hour (0 - 23).
minuteThe minute (0 - 59).
secondThe second (0 - 59).
microsecondThe microsecond (0 - 999999).

◆ mamaDateTime_setTimeWithPrecisionAndTz()

MAMAExpDLL mama_status mamaDateTime_setTimeWithPrecisionAndTz ( mamaDateTime  dateTime,
mama_u32_t  hour,
mama_u32_t  minute,
mama_u32_t  second,
mama_u32_t  microsecond,
mamaDateTimePrecision  precision,
const mamaTimeZone  tz 
)

Set the time-of-day portion of the MamaDateTime with explicit precision.

The date portion is not affected.

Parameters
dateTimeThe dateTime to set.
hourThe hour (0 - 23).
minuteThe minute (0 - 59).
secondThe second (0 - 59).
microsecondThe microsecond (0 - 999999).
precisionAn explicit precision, if known.
tzA timezone to shift from.

◆ mamaDateTime_setDate()

MAMAExpDLL mama_status mamaDateTime_setDate ( mamaDateTime  dateTime,
mama_u32_t  year,
mama_u32_t  month,
mama_u32_t  day 
)

Set the date portion of the MamaDateTime.

The time-of-day portion is not affected.

Parameters
dateTimeThe dateTime to set.
yearThe year (must be 1970 or later).
monthThe month (1 - 12).
dayThe day (1 - 31).

◆ mamaDateTime_copyTime()

MAMAExpDLL mama_status mamaDateTime_copyTime ( mamaDateTime  dest,
const mamaDateTime  src 
)

Copy the time-of-day portion of the mamaDateTime.

The date portion is not affected.

Parameters
destThe dateTime to copy to.
srcThe dateTime to copy from.

◆ mamaDateTime_copyDate()

MAMAExpDLL mama_status mamaDateTime_copyDate ( mamaDateTime  dest,
const mamaDateTime  src 
)

Copy the date portion of the mamaDateTime.

The time-of-day portion is not affected.

Parameters
destThe dateTime to copy to.
srcThe dateTime to copy from.

◆ mamaDateTime_hasTime()

MAMAExpDLL mama_status mamaDateTime_hasTime ( const mamaDateTime  dateTime,
mama_bool_t result 
)

Determine whether the time-of-day portion of the MamaDateTime is set.

Parameters
dateTimeThe dateTime to check.
resultAddress of a bool to store the result. 0 false.

◆ mamaDateTime_hasDate()

MAMAExpDLL mama_status mamaDateTime_hasDate ( const mamaDateTime  dateTime,
mama_bool_t result 
)

Determine whether the date portion of the MamaDateTime is set.

Parameters
dateTimeThe dateTime to check.
resultAddress of mama_bool_t to store the result. 0 false.

◆ mamaDateTime_addSeconds()

MAMAExpDLL mama_status mamaDateTime_addSeconds ( mamaDateTime  dateTime,
mama_f64_t  seconds 
)

Add a number of seconds, including fractional seconds (may be negative).

Parameters
dateTimeThe dateTime to set.
secondsThe number of seconds to add (or subtract).

◆ mamaDateTime_addWholeSeconds()

MAMAExpDLL mama_status mamaDateTime_addWholeSeconds ( mamaDateTime  dateTime,
mama_i32_t  seconds 
)

Add a number of whole seconds (may be negative).

Parameters
dateTimeThe dateTime to set.
secondsThe number of seconds to add (or subtract).

◆ mamaDateTime_addMicroseconds()

MAMAExpDLL mama_status mamaDateTime_addMicroseconds ( mamaDateTime  dateTime,
mama_i64_t  microseconds 
)

Add a number of microseconds (may be negative) Add a number of microseconds (may be negative and greater than 1000000 or less than -1000000).

Parameters
dateTimeThe dateTime to set.
microsecondsThe number of microseconds to add. Can be positive or negative. Note that there are no restrictions on the magnitude of this value.

◆ mamaDateTime_setFromString()

MAMAExpDLL mama_status mamaDateTime_setFromString ( mamaDateTime  dateTime,
const char *  str 
)

Set the date and time from a string representation of format YYYY-mm-dd HH:MM:SS.mmmmmm.

(YYYY/mm/dd also works.) The precision of subseconds is determined by the number of digits after the decimal point.

Parameters
dateTimeThe dateTime to set.
strThe string representation of some date and/or time.

◆ mamaDateTime_setFromStringWithTz()

MAMAExpDLL mama_status mamaDateTime_setFromStringWithTz ( mamaDateTime  dateTime,
const char *  str,
const mamaTimeZone  tz 
)

Set the date and time from a string representation of format YYYY-mm-dd HH:MM:SS.mmmmmm.

(YYYY/mm/dd also works.) The precision of subseconds is determined by the number of digits after the decimal point. If tz is not NULL, the time string is assumed to be set in a different time zone and will be adjusted to UTC accordingly.

Parameters
dateTimeThe dateTime to set.
strThe string representation of some date and/or time.
tzA timezone to shift from.

◆ mamaDateTime_setFromStringBuffer()

MAMAExpDLL mama_status mamaDateTime_setFromStringBuffer ( mamaDateTime  dateTime,
const char *  str,
mama_size_t  strLen 
)

Set the date and time from an unterminated string representation of format YYYY-mm-dd HH:MM:SS.mmmmmm.

(YYYY/mm/dd also works.) The precision of subseconds is determined by the number of digits after the decimal point.

Parameters
dateTimeThe dateTime to set.
strThe string representation of some date and/or time.
strLenThe length of the unterminated string date/time.

◆ mamaDateTime_setFromStringBufferWithTz()

MAMAExpDLL mama_status mamaDateTime_setFromStringBufferWithTz ( mamaDateTime  dateTime,
const char *  str,
mama_size_t  strLen,
const mamaTimeZone  tz 
)

Set the date and time from an unterminated string representation of format YYYY-mm-dd HH:MM:SS.mmmmmm.

(YYYY/mm/dd also works.) The precision of subseconds is determined by the number of digits after the decimal point. If tz is not NULL, the time string is assumed to be set in a different time zone and will be adjusted to UTC accordingly.

Parameters
dateTimeThe dateTime to set.
strThe string representation of some date and/or time.
strLenThe length of the unterminated string date/time.
tzA timezone to shift from.

◆ mamaDateTime_getEpochTime()

MAMAExpDLL mama_status mamaDateTime_getEpochTime ( const mamaDateTime  dateTime,
mama_u32_t seconds,
mama_u32_t microseconds,
mamaDateTimePrecision precision 
)

Get the date and time as seconds and microseconds since the Epoch (UTC time zone).

Parameters
dateTimeThe dateTime to set.
secondsThe number of seconds since the Epoch.
microsecondsThe number of additional microseconds.
precisionThe precision of the returned time value.

◆ mamaDateTime_getEpochTimeWithTz()

MAMAExpDLL mama_status mamaDateTime_getEpochTimeWithTz ( const mamaDateTime  dateTime,
mama_u32_t seconds,
mama_u32_t microseconds,
mamaDateTimePrecision precision,
const mamaTimeZone  tz 
)

Get the date and time as seconds and microseconds since the Epoch in the timezone supplied.

Parameters
dateTimeThe dateTime to set.
secondsThe number of seconds since the Epoch.
microsecondsThe number of additional microseconds.
precisionThe precision of the returned time value.
tzThe timezone for the returned values.

◆ mamaDateTime_getEpochTimeMicroseconds()

MAMAExpDLL mama_status mamaDateTime_getEpochTimeMicroseconds ( const mamaDateTime  dateTime,
mama_u64_t microseconds 
)

Get the date and time as microseconds since the Epoch, (using the UTC timezone).

Parameters
[in]dateTimeThe dateTime to obtain the number of microseconds from.
[out]microsecondsThe number of microseconds since the Epoch.
Returns
Indicates whether the function succeeded or failed and could be one of:
  • MAMA_STATUS_INVALID_ARG
  • MAMA_STATUS_OK

◆ mamaDateTime_getEpochTimeMicrosecondsWithTz()

MAMAExpDLL mama_status mamaDateTime_getEpochTimeMicrosecondsWithTz ( const mamaDateTime  dateTime,
mama_u64_t microseconds,
const mamaTimeZone  tz 
)

Get the date and time as microseconds since the Epoch in the supplied time zone.

Parameters
[in]dateTimeThe dateTime to obtain the number of microseconds from.
[out]microsecondsThe number of microseconds since the Epoch.
[int]tz The timezone.
Returns
Indicates whether the function succeeded or failed and could be one of:
  • MAMA_STATUS_INVALID_ARG
  • MAMA_STATUS_OK

◆ mamaDateTime_getEpochTimeMilliseconds()

MAMAExpDLL mama_status mamaDateTime_getEpochTimeMilliseconds ( const mamaDateTime  dateTime,
mama_u64_t milliseconds 
)

Get the date and time as milliseconds since the Epoch (UTC time zone).

Parameters
dateTimeThe dateTime to set.
millisecondsThe number of milliseconds since the Epoch.

◆ mamaDateTime_getEpochTimeMillisecondsWithTz()

MAMAExpDLL mama_status mamaDateTime_getEpochTimeMillisecondsWithTz ( const mamaDateTime  dateTime,
mama_u64_t milliseconds,
const mamaTimeZone  tz 
)

Get the date and time as milliseconds since the Epoch in the timezone supplied.

Parameters
dateTimeThe dateTime to set.
millisecondsThe number of milliseconds since the Epoch.
tzThe timezone for the returned values.

◆ mamaDateTime_getEpochTimeSeconds()

MAMAExpDLL mama_status mamaDateTime_getEpochTimeSeconds ( const mamaDateTime  dateTime,
mama_f64_t seconds 
)

Get the date and time as seconds since the Epoch (UTC time zone).

Parameters
dateTimeThe dateTime to set
secondsThe number of seconds (including partial seconds) since the Epoch.

◆ mamaDateTime_getEpochTimeSecondsWithCheck()

MAMAExpDLL mama_status mamaDateTime_getEpochTimeSecondsWithCheck ( const mamaDateTime  dateTime,
mama_f64_t seconds 
)

Get the date and time as seconds since the Epoch, (using the UTC timezone).

If no date value is contained in the dateTime then it will be set to today's date and the calculation made.

Parameters
[in]dateTimeThe dateTime to obtain the number of microseconds from.
[out]secondsThe number of seconds, (including partial seconds), since the Epoch.
Returns
Indicates whether the function succeeded or failed and could be one of:
  • MAMA_STATUS_INVALID_ARG
  • MAMA_STATUS_SYSTEM_ERROR
  • MAMA_STATUS_NULL_ARG
  • MAMA_STATUS_OK

◆ mamaDateTime_getEpochTimeSecondsWithTz()

MAMAExpDLL mama_status mamaDateTime_getEpochTimeSecondsWithTz ( const mamaDateTime  dateTime,
mama_f64_t seconds,
const mamaTimeZone  tz 
)

Get the date and time as seconds since the Epoch in the timezone supplied.

Parameters
dateTimeThe dateTime to set
secondsThe number of seconds (including partial seconds) since the Epoch.
tzThe timezone for the returned values.

◆ mamaDateTime_getWithHints()

MAMAExpDLL mama_status mamaDateTime_getWithHints ( const mamaDateTime  dateTime,
mama_u32_t seconds,
mama_u32_t microseconds,
mamaDateTimePrecision precision,
mama_u8_t hints 
)

Get the date and/or time with special, optional hints to indicate whether the date/time includes date information, time information and/or whether a user of the date/time should consider it in the context of a time zone.

Parameters
dateTimeThe dateTime to set.
secondsThe number of seconds (since the Epoch or start-of-day if no date).
microsecondsThe number of microseconds.
precisionThe precision of the date/time stamp.
hintsAdditional hints

◆ mamaDateTime_getStructTimeVal()

MAMAExpDLL mama_status mamaDateTime_getStructTimeVal ( const mamaDateTime  dateTime,
struct timeval *  result 
)

Get the date/time as a "struct timeval".

Parameters
dateTimeThe dateTime to set.
resultThe struct timeval to fill in.

◆ mamaDateTime_getStructTimeValWithTz()

MAMAExpDLL mama_status mamaDateTime_getStructTimeValWithTz ( const mamaDateTime  dateTime,
struct timeval *  result,
const mamaTimeZone  tz 
)

Get the date/time as a "struct timeval" in the timezone supplied.

Parameters
dateTimeThe dateTime to set.
resultThe struct timeval to fill in.
tzThe timezone for the returned values.

◆ mamaDateTime_getStructTm()

MAMAExpDLL mama_status mamaDateTime_getStructTm ( const mamaDateTime  dateTime,
struct tm *  result 
)

Get the date/time as a "struct tm".

Parameters
dateTimeThe dateTime to set.
resultThe struct timeval to fill in.

◆ mamaDateTime_getStructTmWithTz()

MAMAExpDLL mama_status mamaDateTime_getStructTmWithTz ( const mamaDateTime  dateTime,
struct tm *  result,
const mamaTimeZone  tz 
)

Get the date/time as a "struct tm" in the timezone supplied.

Parameters
dateTimeThe dateTime to set.
resultThe struct timeval to fill in.
tzThe timezone for the returned values.

◆ mamaDateTime_getAsString()

MAMAExpDLL mama_status mamaDateTime_getAsString ( const mamaDateTime  dateTime,
char *  str,
mama_size_t  maxLen 
)

Get the date and/or time as a string.

If no date information is available, no date is printed in the resulting string. The format for dates is YYYY-mm-dd (the ISO 8601 date format) and the format for times is HH:MM:SS.mmmmmmm (where the precision of the subseconds may vary depending upon any precision hints available).

Parameters
dateTimeThe dateTime to set.
strThe string buffer to update.
maxLenThe maximum size of the string buffer (including trailing '\0').

◆ mamaDateTime_getTimeAsString()

MAMAExpDLL mama_status mamaDateTime_getTimeAsString ( const mamaDateTime  dateTime,
char *  str,
mama_size_t  maxLen 
)

Get the time (no date) as a string.

The format for times is HH:MM:SS.mmmmmmm (where the precision of the subseconds may vary depending upon any precision hints available).

Parameters
dateTimeThe dateTime to set.
strThe string buffer to update.
maxLenThe maximum size of the string buffer (including trailing '\0').

◆ mamaDateTime_getDateAsString()

MAMAExpDLL mama_status mamaDateTime_getDateAsString ( const mamaDateTime  dateTime,
char *  str,
mama_size_t  maxLen 
)

Get the date (no time) as a string.

The format for dates is YYYY-mm-dd (the ISO 8601 date format).

Parameters
dateTimeThe dateTime to set.
strThe string buffer to update.
maxLenThe maximum size of the string buffer (including trailing '\0').

◆ mamaDateTime_getAsFormattedString()

MAMAExpDLL mama_status mamaDateTime_getAsFormattedString ( const mamaDateTime  dateTime,
char *  str,
mama_size_t  maxLen,
const char *  format 
)

Get the date and/or time as a string using the format provided.

The format string can be the common ones supported by strftime() (Y, m, d, F, T, Y, H, M, S, B, b, h, ), with the additional format strings, "%:" and "%;", which represents the number of subseconds in millis. "%;" includes the dot and only prints the subseconds if they are non-zero. "%:" does not include the dot, and prints "000" for 0 milliseconds. "%." and "%," are identical to "%:" and "%;" except they use the internal precision field to determine how many decimal places to print.

Parameters
dateTimeThe dateTime to set.
strThe string buffer to update.
maxLenThe maximum size of the string buffer (including trailing '\0').
formatThe output format.

◆ mamaDateTime_getAsFormattedStringWithTz()

MAMAExpDLL mama_status mamaDateTime_getAsFormattedStringWithTz ( const mamaDateTime  dateTime,
char *  str,
mama_size_t  maxLen,
const char *  format,
const mamaTimeZone  tz 
)

Get the date and/or time as a string using the format provided.

The format string can be the common ones supported by strftime() (Y, m, d, F, T, Y, H, M, S, B, b, h, ), with the additional format strings, "%:" and "%;", which represents the number of subseconds in millis. "%;" includes the dot and only prints the subseconds if they are non-zero. "%:" does not include the dot, and prints "000" for 0 milliseconds. "%." and "%," are identical to "%:" and "%;" except they use the internal precision field to determine how many decimal places to print.

Parameters
dateTimeThe dateTime to set.
strThe string buffer to update.
maxLenThe maximum size of the string buffer (including trailing '\0').
formatThe output format.
tzThe timezone for the returned date/time.

◆ mamaDateTime_getYear()

MAMAExpDLL mama_status mamaDateTime_getYear ( const mamaDateTime  dateTime,
mama_u32_t result 
)

Get the year (1970 onwards).

Parameters
dateTimeThe dateTime from which to get the result.
resultThe result of the get method.

◆ mamaDateTime_getMonth()

MAMAExpDLL mama_status mamaDateTime_getMonth ( const mamaDateTime  dateTime,
mama_u32_t result 
)

Get the month (1-12).

Parameters
dateTimeThe dateTime from which to get the result.
resultThe result of the get method.

◆ mamaDateTime_getDay()

MAMAExpDLL mama_status mamaDateTime_getDay ( const mamaDateTime  dateTime,
mama_u32_t result 
)

Get the day of month (1-31).

Parameters
dateTimeThe dateTime from which to get the result.
resultThe result of the get method.

◆ mamaDateTime_getHour()

MAMAExpDLL mama_status mamaDateTime_getHour ( const mamaDateTime  dateTime,
mama_u32_t result 
)

Get the hour (0-23).

Parameters
dateTimeThe dateTime from which to get the result.
resultThe result of the get method.

◆ mamaDateTime_getMinute()

MAMAExpDLL mama_status mamaDateTime_getMinute ( const mamaDateTime  dateTime,
mama_u32_t result 
)

Get the minute (0-59).

Parameters
dateTimeThe dateTime from which to get the result.
resultThe result of the get method.

◆ mamaDateTime_getSecond()

MAMAExpDLL mama_status mamaDateTime_getSecond ( const mamaDateTime  dateTime,
mama_u32_t result 
)

Get the second (0-59).

Parameters
dateTimeThe dateTime from which to get the result.
resultThe result of the get method.

◆ mamaDateTime_getMicrosecond()

MAMAExpDLL mama_status mamaDateTime_getMicrosecond ( const mamaDateTime  dateTime,
mama_u32_t result 
)

Get the microsecond (0-999999).

Parameters
dateTimeThe dateTime from which to get the result.
resultThe result of the get method.

◆ mamaDateTime_getDayOfWeek()

MAMAExpDLL mama_status mamaDateTime_getDayOfWeek ( const mamaDateTime  dateTime,
mamaDayOfWeek result 
)

Get the day of week.

Parameters
dateTimeThe dateTime from which to get the result.
resultThe result of the get method.

◆ mamaDateTime_diffSeconds()

MAMAExpDLL mama_status mamaDateTime_diffSeconds ( const mamaDateTime  t1,
const mamaDateTime  t0,
mama_f64_t result 
)

Return the difference, in seconds (including fractions of seconds), between the two times.

◆ mamaDateTime_diffSecondsSameDay()

MAMAExpDLL mama_status mamaDateTime_diffSecondsSameDay ( const mamaDateTime  t1,
const mamaDateTime  t0,
mama_f64_t result 
)

Return the difference, in seconds (including fractions of seconds), between the two times, ignoring any date information.

◆ mamaDateTime_diffMicroseconds()

MAMAExpDLL mama_status mamaDateTime_diffMicroseconds ( const mamaDateTime  t1,
const mamaDateTime  t0,
mama_i64_t result 
)

Return the difference, in microseconds, between the two times.

MAMA_DATE_TIME_PREC_CENTISECONDS
@ MAMA_DATE_TIME_PREC_CENTISECONDS
Definition: datetime.h:43
Tuesday
@ Tuesday
Definition: datetime.h:53
mamaDateTimePrecision
enum mamaDateTimePrecision_ mamaDateTimePrecision
Wednesday
@ Wednesday
Definition: datetime.h:53
MAMA_DATE_TIME_PREC_SECONDS
@ MAMA_DATE_TIME_PREC_SECONDS
Definition: datetime.h:41
MAMA_DATE_TIME_PREC_MINUTES
@ MAMA_DATE_TIME_PREC_MINUTES
Definition: datetime.h:47
MAMA_DATE_TIME_PREC_DAYS
@ MAMA_DATE_TIME_PREC_DAYS
Definition: datetime.h:46
Sunday
@ Sunday
Definition: datetime.h:53
Friday
@ Friday
Definition: datetime.h:53
Saturday
@ Saturday
Definition: datetime.h:53
MAMA_DATE_TIME_PREC_MICROSECONDS
@ MAMA_DATE_TIME_PREC_MICROSECONDS
Definition: datetime.h:45
MAMA_DATE_TIME_PREC_UNKNOWN
@ MAMA_DATE_TIME_PREC_UNKNOWN
Definition: datetime.h:48
MAMA_DATE_TIME_PREC_MILLISECONDS
@ MAMA_DATE_TIME_PREC_MILLISECONDS
Definition: datetime.h:44
Thursday
@ Thursday
Definition: datetime.h:53
MAMA_DATE_TIME_PREC_DECISECONDS
@ MAMA_DATE_TIME_PREC_DECISECONDS
Definition: datetime.h:42
Monday
@ Monday
Definition: datetime.h:53
mamaDayOfWeek
enum mamaDayOfWeek_ mamaDayOfWeek


© 2012 Linux Foundation