Spec-Zone.ru › Elixir 1.6

Calendar.ISO

Реализация календаря, следующая стандарту ISO 8601.

Этот календарь реализует пролептический григорианский календарь и, следовательно, совместим с календарём, используемым в большинстве стран сегодня. Пролептический означает, что правила григорианского календаря для високосных лет применяются для всего времени, в результате чего даты дают разные результаты до года 1583, когда был принят григорианский календарь.

Обратите внимание, что, хотя ISO 8601 допускает указание времени и дат в формате 24:00:00 как нулевого часа следующего дня, эта запись не поддерживается Elixir.

Обзор

Типы

day()
month()
year()

Функции

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)

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

naive_datetime_from_iso_days(arg)

Преобразует формат t:Calendar.iso_days в формат даты и времени, заданный этим календарём

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

Возвращает формат t:Calendar.iso_days указанной даты

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

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

time_from_day_fraction(arg)

Преобразует дробную часть дня в представление времени этого календаря

time_to_day_fraction(hour, minute, second, arg)

Возвращает нормализованную дробную часть дня указанного времени

time_to_string(hour, minute, second, microsecond)

Преобразует заданное время в строку

time_to_string(hour, minute, second, arg, format)

Типы

day()

day() :: 1..31

month()

month() :: 1..12

year()

year() :: 0..9999

Функции

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)

day_of_week(year(), month(), day()) :: 1..7

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

Это целое число от 1 до 7, где 1 - понедельник, а 7 - воскресенье.

Примеры

iex> Calendar.ISO.day_of_week(2016, 10, 31)
1
iex> Calendar.ISO.day_of_week(2016, 11, 01)
2
iex> Calendar.ISO.day_of_week(2016, 11, 02)
3
iex> Calendar.ISO.day_of_week(2016, 11, 03)
4
iex> Calendar.ISO.day_of_week(2016, 11, 04)
5
iex> Calendar.ISO.day_of_week(2016, 11, 05)
6
iex> Calendar.ISO.day_of_week(2016, 11, 06)
7

days_in_month(year, month)

days_in_month(year(), month()) :: 28..31

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

Примеры

iex> Calendar.ISO.days_in_month(1900, 1)
31
iex> Calendar.ISO.days_in_month(1900, 2)
28
iex> Calendar.ISO.days_in_month(2000, 2)
29
iex> Calendar.ISO.days_in_month(2001, 2)
28
iex> Calendar.ISO.days_in_month(2004, 2)
29
iex> Calendar.ISO.days_in_month(2004, 4)
30

leap_year?(year)

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

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

Примеры

iex> Calendar.ISO.leap_year?(2000)
true
iex> Calendar.ISO.leap_year?(2001)
false
iex> Calendar.ISO.leap_year?(2004)
true
iex> Calendar.ISO.leap_year?(1900)
false

naive_datetime_from_iso_days(arg)

naive_datetime_from_iso_days(Calendar.iso_days()) ::
  {Calendar.year(), Calendar.month(), Calendar.day(), Calendar.hour(),
   Calendar.minute(), Calendar.second(), Calendar.microsecond()}

Преобразует формат t:Calendar.iso_days в формат даты и времени, заданный этим календарём.

Примеры

iex> Calendar.ISO.naive_datetime_from_iso_days({0, {0, 86400}})
{0, 1, 1, 0, 0, 0, {0, 6}}
iex> Calendar.ISO.naive_datetime_from_iso_days({730485, {0, 86400}})
{2000, 1, 1, 0, 0, 0, {0, 6}}
iex> Calendar.ISO.naive_datetime_from_iso_days({730485, {43200, 86400}})
{2000, 1, 1, 12, 0, 0, {0, 6}}

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

naive_datetime_to_iso_days(
  Calendar.year(),
  Calendar.month(),
  Calendar.day(),
  Calendar.hour(),
  Calendar.minute(),
  Calendar.second(),
  Calendar.microsecond()
) :: Calendar.iso_days()

Возвращает формат t:Calendar.iso_days указанной даты.

Примеры

iex> Calendar.ISO.naive_datetime_to_iso_days(0, 1, 1, 0, 0, 0, {0, 6})
{0, {0, 86400000000}}
iex> Calendar.ISO.naive_datetime_to_iso_days(2000, 1, 1, 12, 0, 0, {0, 6})
{730485, {43200000000, 86400000000}}
iex> Calendar.ISO.naive_datetime_to_iso_days(2000, 1, 1, 13, 0, 0, {0, 6})
{730485, {46800000000, 86400000000}}

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

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

time_from_day_fraction(arg)

time_from_day_fraction(Calendar.day_fraction()) ::
  {Calendar.hour(), Calendar.minute(), Calendar.second(),
   Calendar.microsecond()}

Преобразует дробную часть дня в представление времени этого календаря.

Примеры

iex> Calendar.ISO.time_from_day_fraction({1,2})
{12, 0, 0, {0, 6}}
iex> Calendar.ISO.time_from_day_fraction({13,24})
{13, 0, 0, {0, 6}}

time_to_day_fraction(hour, minute, second, arg)

time_to_day_fraction(
  Calendar.hour(),
  Calendar.minute(),
  Calendar.second(),
  Calendar.microsecond()
) :: Calendar.day_fraction()

Возвращает нормализованную дробную часть дня указанного времени.

Примеры

iex> Calendar.ISO.time_to_day_fraction(0, 0, 0, {0, 6})
{0, 86400000000}
iex> Calendar.ISO.time_to_day_fraction(12, 34, 56, {123, 6})
{45296000123, 86400000000}

time_to_string(hour, minute, second, microsecond)

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

time_to_string(hour, minute, second, arg, format)

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

Spec-Zone.ru

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