Время

Здесь описаны операторы и функции для работы с датами и временем (тип time).

Типы

time

Тип time имеет следующие поля:

  • int Year - год

  • int Month - месяц

  • int Day - день месяца

  • int Hour - часы

  • int Minute - минуты

  • int Second - секунды

  • bool UTC - если равно true, то это UTC время, в противном случае, считается локальное время.

Операторы

Оператор

Результат

Описание

time == time

bool

Возвращается true, если два времени равны и false, в противном случае.

time > time

bool

Возвращается true, если первое время больше чем второе и false, в противном случае.

time < time

bool

Возвращается true, если первое время меньше чем второе и false, в противном случае.

time != time

bool

Возвращается true, если два времени не равны и false, в противном случае.

time >= time

bool

Возвращается true, если первое время больше или равно второму и false, в противном случае.

time <= time

bool

Возвращается true, если первое время меньше или равно второму и false, в противном случае.

time = time

time

Оператор присваивания.

Функции

int(time t) int

Функция int конвертирует значение time в Unix время, количество секунд с 1 января 1970 UTC и возвращает его.

time(int unixtime) time

Функция time конвертирует данное Unix время unixtime, количество секунд с 1 января 1970 UTC в структуру time и возвращает её.

AddHours(time t, int hours) time

Функция AddHours возвращает новое время, соответствующее указанному, с добавлением hours часов. Параметр hours может быть отрицательным.

Date(int year month day) time

Функция Date возвращает структуру типа time c указанной датой.

DateTime(int year month day hour minute second) time

Функция DateTime возвращает структуру типа time c указанным локальным временем. Также, вы можете инициализировать переменную времени подобным образом

time t = {Year: 2018, Month: 12, Day: 12}

Days(time t) int

Функция Days возвращает количество дней в месяце, в котором находится указанное время.

Format(str layout, time t) str

Функция Format возвращает текстовое представление времени в соответствии со строкой layout. Функция берет строку токенов и заменяет их соответствующими значениями.

Токен

Вывод

Год

YYYY

2019

YY

19

Месяц

MMMM

January

MMM

Jan

MM

01..12

M

1..12

День

DD

01..31

D

1..31

День недели

dddd

Monday

ddd

Mon

AM/PM

PM

AM PM

pm

am pm

Час

HH

00..23

hh

01..12

h

1..12

Минута

mm

00..59

m

1..59

Секунда

ss

00..59

s

1..59

Временная зона

tz

MST

zz

-0700 ... +0700

z

-07:00 ... +07:00

Now() time

Функция Now возвращает текущее локальное время.

ParseTime(str layout, str value) time

Функция ParseTime разбирает отформатированную строку и возвращает соответствующее время. Список токенов такой же как в функции Format.

run str {
time t &= ParseTime(`MMM D, YYYY at h:mmpm (zz)`, `Jun 7, 2019 at 6:05am (+0300)`)
time t1 &= ParseTime(`YY/MM/DD HH:mm:s`, `19/05/29 03:21:3`)
return Format(`YY/MM/DD HH:mm:ss zz`, UTC(t)) + Format(` YY/MM/DD HH:mm:ss`, UTC(t1))
}
// 19/06/07 03:05:00 +0000 19/05/29 03:21:03

UTC(time t) time

Функция UTC конвертирует локальное время в UTC и возвращает новую структуру. Если время t уже было UTC, то возвращается его копия.

Weekday(time t) int

Функция Weekday возвращает номер дня недели. 0 - воскресенье, 1 - понедельник и т.д.

YearDay(time t) int

Функция YearDay возвращает номер дня в году у указанного времени.