View Source Timex.Protocol protocol (timex v3.7.11)
This protocol defines the API for functions which take a Date
,
NaiveDateTime
, or DateTime
as input.
Link to this section Summary
Functions
Get a new version of the date/time value representing the beginning of the day
Get a new version of the date/time value representing the beginning of it's month
Get a new version of the date/time value representing the beginning of it's quarter
Get a new version of the date/time value representing the beginning of it's week,
providing a weekday name (as an atom) for the day which starts the week, i.e. :mon
.
Get a new version of the date/time value representing the beginning of it's year
Get the century a date/time value is in
Get the ordinal day number of the given date/time value
Get the number of days in the month for the given date/time value
Get a new version of the date/time value representing the end of the day
Get a new version of the date/time value representing the ending of it's month
Get a new version of the date/time value representing the ending of it's quarter
Get a new version of the date/time value representing the ending of it's week,
providing a weekday name (as an atom) for the day which starts the week, i.e. :mon
.
Get a new version of the date/time value representing the ending of it's year
Shifts the given date/time value to the ISO day given
Return a boolean indicating whether the date/time value is in a leap year
Determine if the provided date/time value is valid.
Return a pair {year, week number} (as defined by ISO 8601) that the given date/time value falls on.
Get the quarter for the given date/time value
Set fields on a date/time value using a list of unit/value pairs
Shift a date/time value using a list of shift unit/value pairs
Convert a date/time value to a Date
Convert a date/time value to a DateTime. An optional timezone can be provided, UTC will be assumed if one is not provided.
Convert a date/time value to it's Erlang tuple variant
i.e. Date becomes {y,m,d}
, DateTime/NaiveDateTime become
{{y,m,d},{h,mm,s}}
Convert a date/time value to gregorian microseconds (microseconds since the start of year zero)
Convert a date/time value to gregorian seconds (seconds since start of year zero)
Convert a date/time value to a Julian calendar date number
Convert a date/time value to a NaiveDateTime
Convert a date/time value to seconds since the UNIX Epoch
Get the week number of the given date/time value, starting at 1
Get the ordinal weekday number of the given date/time value
Get the ordinal weekday number of the given date/time value and relative to the given weekstart
Link to this section Types
@type t() :: term()
Link to this section Functions
@spec beginning_of_day(Timex.Types.valid_datetime()) :: Timex.Types.valid_datetime() | {:error, term()}
Get a new version of the date/time value representing the beginning of the day
@spec beginning_of_month(Timex.Types.valid_datetime()) :: Timex.Types.valid_datetime() | {:error, term()}
Get a new version of the date/time value representing the beginning of it's month
@spec beginning_of_quarter(Timex.Types.valid_datetime()) :: Timex.Types.valid_datetime() | {:error, term()}
Get a new version of the date/time value representing the beginning of it's quarter
@spec beginning_of_week(Timex.Types.valid_datetime(), Timex.Types.weekstart()) :: Timex.Types.valid_datetime() | {:error, term()}
Get a new version of the date/time value representing the beginning of it's week,
providing a weekday name (as an atom) for the day which starts the week, i.e. :mon
.
@spec beginning_of_year(Timex.Types.year() | Timex.Types.valid_datetime()) :: Timex.Types.valid_datetime() | {:error, term()}
Get a new version of the date/time value representing the beginning of it's year
@spec century(Timex.Types.year() | Timex.Types.valid_datetime()) :: non_neg_integer() | {:error, term()}
Get the century a date/time value is in
@spec day(Timex.Types.valid_datetime()) :: Timex.Types.daynum() | {:error, term()}
Get the ordinal day number of the given date/time value
@spec days_in_month(Timex.Types.valid_datetime()) :: Timex.Types.num_of_days() | {:error, term()}
Get the number of days in the month for the given date/time value
@spec end_of_day(Timex.Types.valid_datetime()) :: Timex.Types.valid_datetime() | {:error, term()}
Get a new version of the date/time value representing the end of the day
@spec end_of_month(Timex.Types.valid_datetime()) :: Timex.Types.valid_datetime() | {:error, term()}
Get a new version of the date/time value representing the ending of it's month
@spec end_of_quarter(Timex.Types.valid_datetime()) :: Timex.Types.valid_datetime() | {:error, term()}
Get a new version of the date/time value representing the ending of it's quarter
@spec end_of_week(Timex.Types.valid_datetime(), Timex.Types.weekstart()) :: Timex.Types.valid_datetime() | {:error, term()}
Get a new version of the date/time value representing the ending of it's week,
providing a weekday name (as an atom) for the day which starts the week, i.e. :mon
.
@spec end_of_year(Timex.Types.year() | Timex.Types.valid_datetime()) :: Timex.Types.valid_datetime() | {:error, term()}
Get a new version of the date/time value representing the ending of it's year
@spec from_iso_day(Timex.Types.valid_datetime(), non_neg_integer()) :: Timex.Types.valid_datetime() | {:error, term()}
Shifts the given date/time value to the ISO day given
@spec is_leap?(Timex.Types.valid_datetime() | Timex.Types.year()) :: boolean() | {:error, term()}
Return a boolean indicating whether the date/time value is in a leap year
@spec is_valid?(Timex.Types.valid_datetime()) :: boolean() | {:error, term()}
Determine if the provided date/time value is valid.
@spec iso_week(Timex.Types.valid_datetime()) :: {Timex.Types.year(), Timex.Types.weeknum()} | {:error, term()}
Return a pair {year, week number} (as defined by ISO 8601) that the given date/time value falls on.
@spec quarter(Timex.Types.month() | Timex.Types.valid_datetime()) :: 1..4 | {:error, term()}
Get the quarter for the given date/time value
@spec set(Timex.Types.valid_datetime(), Timex.set_options()) :: Timex.Types.valid_datetime() | {:error, term()}
Set fields on a date/time value using a list of unit/value pairs
@spec shift(Timex.Types.valid_datetime(), Timex.shift_options()) :: Timex.Types.valid_datetime() | Timex.AmbiguousDateTime.t() | {:error, term()}
Shift a date/time value using a list of shift unit/value pairs
@spec to_date(Timex.Types.valid_datetime()) :: Date.t() | {:error, term()}
Convert a date/time value to a Date
@spec to_datetime(Timex.Types.valid_datetime(), Timex.Types.valid_timezone()) :: DateTime.t() | Timex.AmbiguousDateTime.t() | {:error, term()}
Convert a date/time value to a DateTime. An optional timezone can be provided, UTC will be assumed if one is not provided.
@spec to_erl(Timex.Types.valid_datetime()) :: Timex.Types.date() | Timex.Types.datetime() | {:error, term()}
Convert a date/time value to it's Erlang tuple variant
i.e. Date becomes {y,m,d}
, DateTime/NaiveDateTime become
{{y,m,d},{h,mm,s}}
@spec to_gregorian_microseconds(Timex.Types.valid_datetime()) :: non_neg_integer() | {:error, term()}
Convert a date/time value to gregorian microseconds (microseconds since the start of year zero)
@spec to_gregorian_seconds(Timex.Types.valid_datetime()) :: non_neg_integer() | {:error, term()}
Convert a date/time value to gregorian seconds (seconds since start of year zero)
@spec to_julian(Timex.Types.valid_datetime()) :: integer() | {:error, term()}
Convert a date/time value to a Julian calendar date number
@spec to_naive_datetime(Timex.Types.valid_datetime()) :: NaiveDateTime.t() | {:error, term()}
Convert a date/time value to a NaiveDateTime
@spec to_unix(Timex.Types.valid_datetime()) :: non_neg_integer() | {:error, term()}
Convert a date/time value to seconds since the UNIX Epoch
@spec week_of_month(Timex.Types.valid_datetime()) :: Timex.Types.week_of_month() | {:error, term()}
Get the week number of the given date/time value, starting at 1
@spec weekday(Timex.Types.valid_datetime()) :: Timex.Types.weekday() | {:error, term()}
Get the ordinal weekday number of the given date/time value
@spec weekday(Timex.Types.valid_datetime(), Timex.Types.weekday_name()) :: Timex.Types.weekday() | {:error, term()}
Get the ordinal weekday number of the given date/time value and relative to the given weekstart