Modul:Brittiskt regeringsår
Dokumentationen för denna modul kan skapas på Modul:Brittiskt regeringsår/dok
-- Den här modulen implementerar {{Brittiskt regeringsår}}. Den konverterar gregorianska år
-- till motsvarande engelska eller brittiska regeringsår.
local data = mw.loadData( 'Modul:Brittiskt regeringsår/Data' )
local p = {}
function p.konvertering( frame )
local inputYear
if frame == mw.getCurrentFrame() then
inputYear = frame:getParent().args[ 1 ]
local frameArgsYear = frame.args[ 1 ]
if frameArgsYear then
inputYear = frameArgsYear
end
else
inputYear = frame
end
if type( inputYear ) ~= 'number' then
inputYear = tonumber( inputYear )
end
if not inputYear then
return "''N/A''"
end
local currentYear = tonumber( mw.language.getContentLanguage():formatDate( 'Y' ) )
if inputYear < 1066 or inputYear > currentYear then
return "''N/A''"
end
for _, t in ipairs( data ) do
local dataYear = t.year
if inputYear >= dataYear then
local startYear = t.startYear
local currentRegnalYear = inputYear - dataYear + startYear
local linkCurrent = t.linkCurrent
local prevEndYear = t.prevEndYear
local linkPrev = t.linkPrev
local note = t.note
if inputYear > dataYear then
return mw.ustring.format(
'%d %s – %d %s%s',
currentRegnalYear - 1, linkCurrent, currentRegnalYear, linkCurrent, note or ''
)
elseif inputYear == dataYear and prevEndYear and linkPrev then
return mw.ustring.format(
'%d %s – %d %s%s',
prevEndYear, linkPrev, currentRegnalYear, linkCurrent, note or ''
)
else
return mw.ustring.format(
'%d %s%s',
currentRegnalYear, linkCurrent, note or ''
)
end
end
end
end
return p