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

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
[перевірена версія][перевірена версія]
Рядок 19: Рядок 19:
 
return '[[0-ві]]'
 
return '[[0-ві]]'
 
elseif decade > 0 then
 
elseif decade > 0 then
if decade == ((decade-(decade % 100))/100)*100 then
+
if decade % 100 == 0 then
 
return '[[' .. decade .. '0-ні]]'
 
return '[[' .. decade .. '0-ні]]'
elseif (decade-4)/10 == ((decade-(decade % 10))/10) then
+
elseif (decade-4) % 10 == 0 then
 
return '[[' .. decade .. '0-ві]]'
 
return '[[' .. decade .. '0-ві]]'
 
else
 
else
Рядок 30: Рядок 30:
 
if decadeBc == 0 then
 
if decadeBc == 0 then
 
return decadeBcLink('0-ві', stripBc)
 
return decadeBcLink('0-ві', stripBc)
elseif decade == ((decadeBc - (decadeBc % 100))/100)*100 then
+
elseif decadeBc % 100 == 0 then
 
return decadeBcLink(decadeBc .. '0-ні', stripBc)
 
return decadeBcLink(decadeBc .. '0-ні', stripBc)
elseif (decadeBc-4)/10 == ((decadeBc-(decadeBc % 10))/10) then
+
elseif (decadeBc-4) % 10 == 0 then
 
return decadeBcLink(decadeBc .. '0-ві', stripBc)
 
return decadeBcLink(decadeBc .. '0-ві', stripBc)
 
else
 
else

Версія за 22:19, 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 % 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