Tox.Time (tox v0.2.3)
A set of functions to work with Time
.
Link to this section Summary
Functions
Returns true if time1
occurs after time2
.
Returns true if time1
occurs after time2
or both dates are equal.
Returns true if time1
occurs before time2
.
Returns true if time1
occurs before time2
or both dates are equal.
Returns a boolean indicating whether date
occurs between from
and to
.
The optional boundaries
specifies whether from
and to
are included or
not. The possible value for boundaries
are
Returns true if both times are equal.
Return the maximum time.
Return the minimal time.
Adds durations
to the given naive_datetime
.
Link to this section Functions
Returns true if time1
occurs after time2
.
Examples
iex> Tox.Time.after?(~T[10:00:00], ~T[10:00:00.1])
false
iex> Tox.Time.after?(~T[12:00:00], ~T[11:59:59])
true
iex> Tox.Time.after?(~T[12:00:00], ~T[12:00:00])
false
iex> Tox.Time.after?(
...> Time.convert!(~T[23:23:23], Cldr.Calendar.Coptic),
...> Time.convert!(~T[01:59:59], Cldr.Calendar.Coptic)
...> )
true
Returns true if time1
occurs after time2
or both dates are equal.
Examples
iex> Tox.Time.after_or_equal?(~T[10:00:00], ~T[10:00:00.1])
false
iex> Tox.Time.after_or_equal?(~T[12:00:00], ~T[11:59:59])
true
iex> Tox.Time.after_or_equal?(~T[12:00:00], ~T[12:00:00])
true
iex> Tox.Time.after_or_equal?(
...> Time.convert!(~T[23:23:23], Cldr.Calendar.Coptic),
...> Time.convert!(~T[01:59:59], Cldr.Calendar.Coptic)
...> )
true
Returns true if time1
occurs before time2
.
Examples
iex> Tox.Time.before?(~T[10:00:00], ~T[10:00:00.1])
true
iex> Tox.Time.before?(~T[12:00:00], ~T[11:59:59])
false
iex> Tox.Time.before?(~T[12:00:00], ~T[12:00:00])
false
iex> Tox.Time.before?(
...> Time.convert!(~T[23:23:23], Cldr.Calendar.Coptic),
...> Time.convert!(~T[01:59:59], Cldr.Calendar.Coptic)
...> )
false
Returns true if time1
occurs before time2
or both dates are equal.
Examples
iex> Tox.Time.before_or_equal?(~T[10:00:00], ~T[10:00:00.1])
true
iex> Tox.Time.before_or_equal?(~T[12:00:00], ~T[11:59:59])
false
iex> Tox.Time.before_or_equal?(~T[12:00:00], ~T[12:00:00])
true
iex> Tox.Time.before_or_equal?(
...> Time.convert!(~T[23:23:23], Cldr.Calendar.Coptic),
...> Time.convert!(~T[01:59:59], Cldr.Calendar.Coptic)
...> )
false
between?(time, from, to, boundaries \\ :right_open)
Specs
between?(Calendar.time(), Calendar.time(), Calendar.time(), Tox.boundaries()) :: boolean()
Returns a boolean indicating whether date
occurs between from
and to
.
The optional boundaries
specifies whether from
and to
are included or
not. The possible value for boundaries
are:
:open
:from
andto
are excluded:closed
:from
andto
are included:left_open
:from
is excluded andto
is included:right_open
:from
is included andto
is excluded
Examples
iex> from = ~T[10:00:00]
iex> to = ~T[14:00:00]
iex> Tox.Time.between?(~T[09:00:00], from, to)
false
iex> Tox.Time.between?(~T[12:00:00], from, to)
true
iex> Tox.Time.between?(~T[23:00:00], from, to)
false
iex> Tox.Time.between?(~T[10:00:00], from, to)
true
iex> Tox.Time.between?(~T[14:00:00], from, to)
false
iex> Tox.Time.between?(~T[10:00:00], from, to, :open)
false
iex> Tox.Time.between?(~T[14:00:00], from, to, :open)
false
iex> Tox.Time.between?(~T[10:00:00], from, to, :closed)
true
iex> Tox.Time.between?(~T[14:00:00], from, to, :closed)
true
iex> Tox.Time.between?(~T[10:00:00], from, to, :left_open)
false
iex> Tox.Time.between?(~T[14:00:00], from, to, :left_open)
true
iex> Tox.Time.between?(~T[00:00:00], to, from)
** (ArgumentError) from is equal or greater as to
Returns true if both times are equal.
Examples
iex> Tox.Time.equal?(~T[11:11:11], ~T[22:22:22])
false
iex> Tox.Time.equal?(~T[12:12:12], ~T[12:12:12])
true
max(calendar \\ Calendar.ISO)
Specs
max(Calendar.calendar()) :: Time.t()
Return the maximum time.
Example
iex> Tox.Time.max()
~T[23:59:59.999999]
iex> Tox.Time.max(Cldr.Calendar.Ethiopic)
%Time{
hour: 23,
minute: 59,
second: 59,
microsecond: {999999, 6},
calendar: Cldr.Calendar.Ethiopic
}
min(calendar \\ Calendar.ISO)
Specs
min(Calendar.calendar()) :: Time.t()
Return the minimal time.
Examples
iex> Tox.Time.min()
~T[00:00:00]
iex> Tox.Time.min(Cldr.Calendar.Coptic)
%Time{
hour: 0,
minute: 0,
second: 0,
microsecond: {0, 0},
calendar: Cldr.Calendar.Coptic
}
shift(map, durations)
Specs
shift(Calendar.time(), [Tox.duration()]) :: Time.t()
Adds durations
to the given naive_datetime
.
The durations
is a keyword list of one or more durations of the type
Tox.duration
e.g. [hour: 1, minute: 5, second: 500]
.
Examples
iex> time = ~T[12:00:00]
iex> Tox.Time.shift(time, hour: 2)
~T[14:00:00.000000]
iex> Tox.Time.shift(time, hour: -2, minute: 10, second: 48)
~T[10:10:48.000000]
iex> Tox.Time.shift(time, day: 2)
~T[12:00:00.000000]
iex> Tox.Time.shift(time, minute: 90)
~T[13:30:00.000000]
iex> Tox.Time.shift(time, minute: -90)
~T[10:30:00.000000]
iex> Tox.Time.shift(time, minute: -59, hour: -23)
~T[12:01:00.000000]
iex> Tox.Time.shift(time, minute: -24 * 60)
~T[12:00:00.000000]
iex> Tox.Time.shift(time, second: 24 * 60 * 60)
~T[12:00:00.000000]