Материал статьи взят здесь: http://www.bot4sale.ru/blog-menu/qlua/spisok-statej/368-lua-time.html
Дата/время в QLua(Lua) может быть представлено либо в виде секунд, прошедших с полуночи 1 января 1970 года, либо в виде таблицы, имеющей следующие поля:
year - год (четыре цифры)
month - месяц (1 – 12)
day - день (1 – 31)
hour - час (0 – 23)
min - минуты (0 – 59)
sec - секунды (0 – 59)
wday - день недели (1 - 7), воскресенью соответствует 1
yday - день года
isdst - флаг дневного времени суток, тип boolean
Встроенные функции:
os.clock() - возвращает время в секундах с точностью до миллисекунд с момента запуска приложения, в нашем случае QUIK. Пример: 1544.801
os.time() - возвращает время в секундах, прошедших с полуночи 1 января 1970 года, может принимать вышеописанную таблицу, в качестве аргумента, без аргументов возвращает текущее время
os.date() - возвращает форматированные дату/время, первым аргументом принимает формат, вторым аргументом принимает время в секундах. Аргументы не обязательны. Если не передать 2-й аргумент, функция вернет текущие дату/время компьютера. Если функцию вызвать вообще без аргументов, то она вернет текущие дату/время компьютера в виде 03/22/15 22:28:11
В строке формата можно использовать следующие опции:
%a - день недели, сокр. (англ.) (пример, Wed) %A - день недели, полностью (англ.) (пример, Wednesday) %b - месяц, сокр. (англ.) (пример, Sep) %B - месяц, полностью (англ.) (пример, September) %c - дата и время (по-умолчанию) (пример, 03/22/15 22:28:11) %d - день месяца (пример, 22) [диапазон, 01-31] %H - час, в 24-х часовом формате (пример, 23) [диапазон, 00-23] %I - час, в 12-и часовом формате (пример, 11) [диапазон, 01-12] %M - минута (пример, 48) [диапазон, 00-59] %m - месяц (пример, 09) [диапазон, 01-12] %p - время суток "am", или "pm" %S - секунда (пример, 10) [диапазон, 00-59] %w - день недели (пример, 3) [диапазон, 0-6, соответствует Sunday-Saturday] %x - дата (пример, 09/16/98) %X - время (пример, 23:48:10) %Y - год, 4 цифры (пример, 2015) %y - год, 2 цифры (пример, 15) [00-99] %% - символ "%" *t - вернет таблицу !*t - вернет таблицу (по Гринвичу)
Примеры:
-- Представить произвольное время в секундах datetime = { year = 2015, month = 03, day = 22, hour = 22, min = 28, sec = 11 }; seconds = os.time(datetime); -- в seconds будет значение 1427052491 -- Представить время в секундах в виде таблицы datetime datetime = os.date("*t",seconds); -- Преобразование строки даты/времени в таблицу datetime dt = {}; dt.day,dt.month,dt.year,dt.hour,dt.min,dt.sec = string.match("22/03/2015 22:28:11","(%d*)/(%d*)/(%d*) (%d*):(%d*):(%d*)"); for key,value in pairs(dt) do dt[key] = tonumber(value) end -- А так можно получить текущие дату/время сервера в виде таблицы datetime dt = {}; dt.day,dt.month,dt.year,dt.hour,dt.min,dt.sec = string.match(getInfoParam('TRADEDATE')..' '..getInfoParam('SERVERTIME'),"(%d*).(%d*).(%d*) (%d*):(%d*):(%d*)") for key,value in pairs(dt) do dt[key] = tonumber(value) end |
Если у Вас появились какие-то вопросы, задайте их в комментариях под статьей !!!