# `Timex.Types`
[🔗](https://github.com/bitwalker/timex/blob/4.0.0/lib/timex/types.ex#L1)

# `calendar_types`

```elixir
@type calendar_types() :: Date.t() | DateTime.t() | NaiveDateTime.t() | Time.t()
```

# `date`

```elixir
@type date() :: {year(), month(), day()}
```

# `datetime`

```elixir
@type datetime() :: {date(), time()}
```

# `day`

```elixir
@type day() :: Calendar.day()
```

# `daynum`

```elixir
@type daynum() :: 1..366
```

# `hour`

```elixir
@type hour() :: Calendar.hour()
```

# `iso_triplet`

```elixir
@type iso_triplet() :: {year(), weeknum(), weekday()}
```

# `megaseconds`

```elixir
@type megaseconds() :: non_neg_integer()
```

# `microsecond`

```elixir
@type microsecond() :: Calendar.microsecond()
```

# `microsecond_datetime`

```elixir
@type microsecond_datetime() :: {date(), microsecond_time()}
```

# `microsecond_time`

```elixir
@type microsecond_time() ::
  {hour(), minute(), second(), microsecond() | microseconds()}
```

# `microseconds`

```elixir
@type microseconds() :: non_neg_integer()
```

# `minute`

```elixir
@type minute() :: Calendar.minute()
```

# `month`

```elixir
@type month() :: Calendar.month()
```

# `num_of_days`

```elixir
@type num_of_days() :: 28..31
```

# `second`

```elixir
@type second() :: Calendar.second()
```

# `seconds`

```elixir
@type seconds() :: non_neg_integer()
```

# `shift_units`

```elixir
@type shift_units() ::
  :milliseconds | :seconds | :minutes | :hours | :days | :weeks | :years
```

# `std_offset`

```elixir
@type std_offset() :: Calendar.std_offset()
```

# `time`

```elixir
@type time() :: {hour(), minute(), second()}
```

# `time_units`

```elixir
@type time_units() ::
  :microsecond
  | :microseconds
  | :millisecond
  | :milliseconds
  | :second
  | :seconds
  | :minute
  | :minutes
  | :hour
  | :hours
  | :day
  | :days
  | :week
  | :weeks
  | :year
  | :years
```

# `time_zone`

```elixir
@type time_zone() :: Calendar.time_zone()
```

# `timestamp`

```elixir
@type timestamp() :: {megaseconds(), seconds(), microseconds()}
```

# `tz_offset`

```elixir
@type tz_offset() :: -14..12
```

# `utc_offset`

```elixir
@type utc_offset() :: Calendar.utc_offset()
```

# `valid_date`

```elixir
@type valid_date() :: Date.t() | date()
```

# `valid_datetime`

```elixir
@type valid_datetime() ::
  Date.t()
  | DateTime.t()
  | NaiveDateTime.t()
  | Time.t()
  | datetime()
  | date()
  | microsecond_datetime()
```

# `valid_time`

```elixir
@type valid_time() :: Time.t() | time()
```

# `valid_timezone`

```elixir
@type valid_timezone() :: String.t() | tz_offset() | :utc | :local
```

# `week_of_month`

```elixir
@type week_of_month() :: 1..6
```

# `weekday`

```elixir
@type weekday() :: 1..7
```

# `weekday_name`

```elixir
@type weekday_name() ::
  :monday | :tuesday | :wednesday | :thursday | :friday | :saturday | :sunday
```

# `weeknum`

```elixir
@type weeknum() :: 1..53
```

# `weekstart`

```elixir
@type weekstart() :: weekday() | binary() | atom()
```

# `year`

```elixir
@type year() :: 0..9999
```

# `zone_abbr`

```elixir
@type zone_abbr() :: Calendar.zone_abbr()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
