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

Link to this macro

after?(time1, time2)

(macro)

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
Link to this macro

after_or_equal?(time1, time2)

(macro)

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
Link to this macro

before?(time1, time2)

(macro)

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
Link to this macro

before_or_equal?(time1, time2)

(macro)

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
Link to this function

between?(time, from, to, boundaries \\ :right_open)

Specs

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 and to are excluded
  • :closed: from and to are included
  • :left_open: from is excluded and to is included
  • :right_open: from is included and to 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
Link to this macro

equal?(time1, time2)

(macro)

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
Link to this function

max(calendar \\ Calendar.ISO)

Specs

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
}
Link to this function

min(calendar \\ Calendar.ISO)

Specs

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
}
Link to this function

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]