Spec-Zone.ru › Elixir 1.4

Календарь поведение

Этот модуль определяет обязанности работы с календарями, датами, временем и датами-временами в Elixir.

В настоящее время он определяет типы и минимальную реализацию поведения календаря в Elixir. Цель функций календаря в Elixir — предоставить базу для взаимодействия, а не полную функциональную API для работы с датами и временем.

Для фактических структур дат, времени и дат-времени см. Date, Time, NaiveDateTime и DateTime.

Обратите внимание, что обозначения года, месяца, дня и т. д. избыточны (т. е. целое число вместо 1..12 для месяцев), поскольку разные календари могут иметь разное количество дней в месяце, месяцев в году и т. д.

Краткое описание

Типы

calendar()

Реализация календаря

date()

Любой map/struct, содержащий поля даты

datetime()

Любой map/struct, содержащий поля даты и времени

day()
hour()
microsecond()

Микросекунды с сохранённой точностью

minute()
month()
naive_datetime()

Любой map/struct, содержащий поля naive_datetime

second()

От 0 до 60 для учёта високосных секунд

std_offset()

Стандартное смещение часового пояса в секундах (не ноль в летнее время)

time()

Любой map/struct, содержащий поля времени

time_zone()

Идентификатор часового пояса согласно базе данных IANA tz (например, Europe/Zurich)

utc_offset()

Смещение часового пояса по UTC в секундах

year()
zone_abbr()

Аббревиатура часового пояса (например, CET или CEST или BST и т. д.)

Обратные вызовы

date_to_string(year, month, day)

Преобразует дату в строку в соответствии с календарём

datetime_to_string(year, month, day, hour, minute, second, microsecond, time_zone, zone_abbr, utc_offset, std_offset)

Преобразует дату и время (с часовым поясом) в строку в соответствии с календарём

day_of_week(year, month, day)

Вычисляет день недели по заданному year, month, и day

days_in_month(year, month)

Возвращает количество дней в заданном году-месяце

leap_year?(year)

Возвращает true, если заданный год високосный

naive_datetime_to_string(year, month, day, hour, minute, second, microsecond)

Преобразует дату и время (без часового пояса) в строку в соответствии с календарём

Типы

calendar()

calendar() :: module()

Реализация календаря

date()

date() :: %{optional(any()) => any(), :calendar => calendar(), :year => year(), :month => month(), :day => day()}

Любой map/struct, содержащий поля даты

datetime()

datetime() :: %{optional(any()) => any(), :calendar => calendar(), :year => year(), :month => month(), :day => day(), :hour => hour(), :minute => minute(), :second => second(), :microsecond => microsecond(), :time_zone => time_zone(), :zone_abbr => zone_abbr(), :utc_offset => utc_offset(), :std_offset => std_offset()}

Любой map/struct, содержащий поля даты и времени

day()

day() :: integer()

hour()

hour() :: 0..23

microsecond()

microsecond() :: {0..999999, 0..6}

Микросекунды с сохранённой точностью.

Точность представляет собой количество цифр, которые должны быть использованы при представлении микросекунд во внешнем формате. Если точность равна 0, это означает, что микросекунды должны быть пропущены.

minute()

minute() :: 0..59

month()

month() :: integer()

naive_datetime()

naive_datetime() :: %{optional(any()) => any(), :calendar => calendar(), :year => year(), :month => month(), :day => day(), :hour => hour(), :minute => minute(), :second => second(), :microsecond => microsecond()}

Любой map/struct, содержащий поля naive_datetime

second()

second() :: 0..60

От 0 до 60 для учёта високосных секунд

std_offset()

std_offset() :: integer()

Стандартное смещение часового пояса в секундах (не ноль в летнее время)

time()

time() :: %{optional(any()) => any(), :hour => hour(), :minute => minute(), :second => second(), :microsecond => microsecond()}

Любой map/struct, содержащий поля времени

time_zone()

time_zone() :: String.t()

Идентификатор часового пояса согласно базе данных IANA tz (например, Europe/Zurich)

utc_offset()

utc_offset() :: integer()

Смещение часового пояса по UTC в секундах

year()

year() :: integer()

zone_abbr()

zone_abbr() :: String.t()

Аббревиатура часового пояса (например, CET или CEST или BST и т. д.)

Обратные вызовы

date_to_string(year, month, day)

date_to_string(year(), month(), day()) :: String.t()

Преобразует дату в строку в соответствии с календарём.

datetime_to_string(year, month, day, hour, minute, second, microsecond, time_zone, zone_abbr, utc_offset, std_offset)

datetime_to_string(year(), month(), day(), hour(), minute(), second(), microsecond(), time_zone(), zone_abbr(), utc_offset(), std_offset()) :: String.t()

Преобразует дату и время (с часовым поясом) в строку в соответствии с календарём.

day_of_week(year, month, day)

day_of_week(year(), month(), day()) :: non_neg_integer()

Вычисляет день недели по заданному year, month, и day.

days_in_month(year, month)

days_in_month(year(), month()) :: day()

Возвращает количество дней в заданном году-месяце.

leap_year?(year)

leap_year?(year()) :: boolean()

Возвращает true, если заданный год високосный.

Високосный год — это год, длина которого больше обычной. Точное значение зависит от календаря. Календарь должен вернуть false если он не поддерживает понятие високосных годов.

naive_datetime_to_string(year, month, day, hour, minute, second, microsecond)

naive_datetime_to_string(year(), month(), day(), hour(), minute(), second(), microsecond()) :: String.t()

Преобразует дату и время (без часового пояса) в строку в соответствии с календарём.

© 2012 Plataformatec
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/elixir/1.4.5/Calendar.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API