timex v3.2.0 Timex.Protocol protocol View Source
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
Link to this section Types
Link to this section Functions
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
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
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
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
.
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
century(Timex.Types.year() | Timex.Types.valid_datetime()) :: non_neg_integer() | {:error, term()}
Get the century a date/time value is in
day(Timex.Types.valid_datetime()) :: Timex.Types.daynum() | {:error, term()}
Get the ordinal day number of the given date/time value
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
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
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
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
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
.
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
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
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
is_valid?(Timex.Types.valid_datetime()) :: boolean() | {:error, term()}
Determine if the provided date/time value is valid.
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.
quarter(Timex.Types.month() | Timex.Types.valid_datetime()) :: 1..4 | {:error, term()}
Get the quarter for the given date/time value
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
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
to_date(Timex.Types.valid_datetime()) :: Date.t() | {:error, term()}
Convert a date/time value to a Date
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.
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}}
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)
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)
to_julian(Timex.Types.valid_datetime()) :: float() | {:error, term()}
Convert a date/time value to a Julian calendar date number
to_naive_datetime(Timex.Types.valid_datetime()) :: NaiveDateTime.t() | {:error, term()}
Convert a date/time value to a NaiveDateTime
to_unix(Timex.Types.valid_datetime()) :: non_neg_integer() | {:error, term()}
Convert a date/time value to seconds since the UNIX Epoch
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
weekday(Timex.Types.valid_datetime()) :: Timex.Types.weekday() | {:error, term()}
Get the ordinal weekday number of the given date/time value