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

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
[перевірена версія][перевірена версія]
Рядок 12: Рядок 12:
 
end
 
end
   
return p._decadeLink(args[1], args[2])
+
return p._decadeLink(tonumber(args[1]), tonumber(args[2]))
 
end
 
end
   

Версія за 22:13, 6 липня 2020

local getArgs = require('Module:Arguments').getArgs
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 == ((decade-(decade % 100))/100)*100 then
			return '[[' .. decade .. '0-ні]]'
		elseif (decade-4)/10 == ((decade-(decade % 10))/10) then
    		return '[[' .. decade .. '0-ві]]'
    	else
    		return '[[' .. decade .. '0-ті]]'
    	end	
    else 
    	local decadeBc = -1 - decade
    	if decadeBc == 0 then
    		return decadeBcLink('0-ві', stripBc)
    	elseif decade == ((decadeBc - (decadeBc % 100))/100)*100 then
    		return decadeBcLink(decadeBc .. '0-ні', stripBc)
    	elseif (decadeBc-4)/10 == ((decadeBc-(decadeBc % 10))/10) 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