Відмінності між версіями «Модуль:Datetime»

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
[перевірена версія][перевірена версія]
 
Рядок 1: Рядок 1:
local getArgs = require('Module:Arguments').getArgs
 
 
local p = {}
 
local p = {}
 
local bc = ' до н. е.'
 
local bc = ' до н. е.'

Поточна версія на 12:03, 7 липня 2020

local p = {}
local bc = ' до н. е.'

function p.decadeLink(frame)
    -- Allow for invocation via #invoke or directly from another module
    local args
    if frame == mw.getCurrentFrame() then
        args = frame.args
    else
        args = frame
    end

    return p._decadeLink(tonumber(args[1]), tonumber(args[2]))
end

function p._decadeLink(decade, stripBc)
	if decade == 0 then
		return '[[0-ві]]'
	elseif decade > 0 then
		if decade % 100 == 0 then
			return '[[' .. decade .. '0-ні]]'
		elseif (decade-4) % 10 == 0 then
    		return '[[' .. decade .. '0-ві]]'
    	else
    		return '[[' .. decade .. '0-ті]]'
    	end	
    else 
    	local decadeBc = -1 - decade
    	if decadeBc == 0 then
    		return decadeBcLink('0-ві', stripBc)
    	elseif decadeBc % 100 == 0 then
    		return decadeBcLink(decadeBc .. '0-ні', stripBc)
    	elseif (decadeBc-4) % 10 == 0 then
        	return decadeBcLink(decadeBc .. '0-ві', stripBc)
        else
        	return decadeBcLink(decadeBc .. '0-ті', stripBc)
        end
    end
end

function decadeBcLink(link, stripBc)
	local result = '[[' .. link .. bc 
	if stripBc then
    	result = result .. '|' .. link .. ']]'
    else
    	result = result .. ']]'
	end
	return result
end

return p