Module:Date
Apparence
La documentation pour ce module peut être créée à Module:Date/doc
-- Ci module ci c' est po les dates
local p = {}
local lang = mw.language.new("wa")
-- lang:formatDate dene ene sacwè come
-- 5 måss 2019, adon ki nos fåreut 5 di måss 2019
-- 1 måss 2019 → 1î di måss 2019
function p.get_corrected_date(datetime)
local date = mw.text.split(lang:formatDate('j,n,F,Y', datetime, true), ',')
local di = "di "
local i = ""
-- divant ene voyale
if date[2] == "4" or date[2] == "8" or date[2] == "10" then
di = "d' "
end
if date[1] == "1" then
i = "î"
end
return date[1]..i.." "..di..date[3].." "..date[4]
end
-- formate ene date
-- @d string|table
-- @return nil|string date metowe e fôme
function p.formatDate(datetime)
-- tåvlea d'ene dinêye wikidata d' on tipe time
if type(datetime) == 'table' and
datetime.datatype ~= nil and
datetime.datatype == 'time' then
local time = datetime.datavalue.value.time
local precision = datetime.datavalue.value.precision
-- date ki cmince avou on - (moens)
local BC = false
if string.sub(time, 1, 1) == "-" then
BC = true
-- formatDate ni rote ki po les dates avou +
time = '+' .. string.sub(time, 2)
end
-- seur pol sieke (e tchifes romins)
if precision == 7 then
--[[
if BC then BC = ' div. JC' else BC = "" end
local y = lang:formatDate('Y', time)
y = p.lpad(tostring(math.ceil(tonumber(y)/100)), 4, '0')
return lang:formatDate('xrY"vet kantved"', y) .. BC
]]--
-- seur po 10 ans
-- 1899 → FLOOR(189.9) → 1890
elseif precision == 8 then
if BC then BC = '-' else BC = "" end
local y = lang:formatDate('Y', time)
return "diviè " .. BC .. tostring( math.floor(tonumber(y)/10) .. '0' )
-- seur po l' anêye
-- les dates sont dnêyes dizo l' fôme 2019-00-00T00:00:00Z
-- li moes 00 est rcarculé come li moes 12 di l' anêye d' avant
-- i fåt radjouter 1 an
-- TODO ni rote nén avou 2019-01-01T00:00:00Z
elseif precision == 9 then
if BC then BC = '-' else BC = "" end
local y = tonumber(lang:formatDate('Y', time)) -- po n' nén aveur des annêyes come 0629
return BC .. tostring(y+1)
-- seur pol moes
-- les dates sont dnêyes dizo l' fôme 2019-03-00T00:00:00Z
-- li djoû 00 est rcarculé come li moes 02 di l' anêye e rote
-- et si l' moes est 01 adon come li moes 12 di l' anêye d' avant
-- il fåt radjouter 1 djoû
elseif precision == 10 then
return lang:formatDate('F Y', time .. '+1 day')
-- seur pol djoû
elseif precision == 11 then
return p.get_corrected_date(time)
else
return "?"
end
elseif type(datetime) == 'string' then
return p.get_corrected_date(time)
else
return "?"
end
end
-- dene li sieke sorlon l' anêye
-- 2021 → 21inme sieke
-- 100 → 2inme sieke
-- 9 → 1î sieke
function p.get_century(year)
-- si ça vént d' on modele
if year.args ~=nil and year.args[1] ~=nil then
year = year.args[1]
end
ord = 'inme'
BC = ' dv. Dj.-C.'
year = tonumber(year)
is_negative = (year < 0)
century = math.floor(math.abs(year)/100)+1
if(century == 1) then ord = 'î' end
if(not is_negative) then BC = '' end
return century .. ord .. ' sieke' .. BC
end
return p