Модуль:Dates: различия между версиями

[досмотренная версия][досмотренная версия]
Содержимое удалено Содержимое добавлено
Нет описания правки
Нет описания правки
Строка 2:
В это модуле собраны функции, связанные с работой с датами.
]]
 
local nominativeMonthes = {'январь', 'февраль', 'март', 'апрель', 'май', 'июнь', 'июль', 'август', 'сентябрь', 'октябрь', 'ноябрь', 'декабрь'}
local genitivusMonthes = {'января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря'}
 
local monthg = {'января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', "сентября", "октября", "ноября", "декабря"}
Строка 385 ⟶ 389 :
return time
end
--[[
function p.parseISO8601_Julian(str)
assert(type(str) == "string");
local value = p.parseISO8601DateTime(str)
if value.year > 1582 and value.year <= 2100 then
-- Обрабатываем специальные даты, которых нет в григорианском календаре:
-- 29.02.1700 => 11.03.1700
-- 29.02.1800 => 12.03.1800
-- 29.02.1900 => 13.03.1900
if value.day == 29 and value.month == 2 and value.year == 1700 then
value.day = 11
value.month = 3
elseif value.day == 29 and value.month == 2 and value.year == 1800 then
value.day = 12
value.month = 3
elseif value.day == 29 and value.month == 2 and value.year == 1900 then
value.day = 13
value.month = 3
else
local offset_day = 0
local time = os.time(value)
if time >= julBoundary3 then
offset_day = 13
elseif time >= julBoundary2 then
offset_day = 12
elseif time >= julBoundary1 then
offset_day = 11
else
offset_day = 10
end
return time + offset_day*seconds_in_day
end
end
return os.time(value)
end
]]
 
--[[
Функция для тестирования:
* {{#invoke:Dates|test_parseISO8601_Juliantest_JulianDateToUNIXTime|+00000001709-06-27T00:00:00Z}}<br/>27 июня (8 июля) 1709 (+11) — Полтавская битва
* {{#invoke:Dates|test_parseISO8601_Juliantest_JulianDateToUNIXTime|+00000001825-12-14T00:00:00Z}}<br/>14 (26) декабря 1825 (+12) — Восстание декабристов
* {{#invoke:Dates|test_parseISO8601_Juliantest_JulianDateToUNIXTime|+00000001917-10-25T00:00:00Z}}<br/>25 октября (7 ноября) 1917 (+13) — Октябрьская революция
]]
function p.test_parseISO8601_Juliantest_JulianDateToUNIXTime(frame)
local s_iso_date = tostring(frame.args[1])
local result = p.parseISO8601_JulianJulianDateToUNIXTime(p.parseISO8601DateTime(s_iso_date))
if result == nil then
return s_iso_date .. " → nil"
Строка 436 ⟶ 405 :
end
end
]]
 
local g2uBoundary1 = os.time({year = 1582, month = 10, day = 15, hour=0, min=0, sec=0}) -- p.parseISO8601('1582-10-15T00:00:00Z')
Строка 490 ⟶ 458 :
if cond then return T else return F end
end
 
local nominativeMonthes = {'январь', 'февраль', 'март', 'апрель', 'май', 'июнь',
'июль', 'август', 'сентябрь', 'октябрь', 'ноябрь', 'декабрь'}
local genitivusMonthes = {'января', 'февраля', 'марта', 'апреля', 'мая', 'июня',
'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря'}
 
function nominativeYear( year )