Modul:British regnal year
Qiyofa
Bu modul uchun Modul:British regnal year/doc nomli hujjat sahifasini yaratishingiz mumkin
local data = mw.loadData( 'Module:British regnal year/data' )
local p = {}
function p.main( 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