مۆدیوول:British regnal year
ڕواڵەت
![](http://upload.wikimedia.org/wikipedia/commons/thumb/4/43/Test_Template_Info-Icon_-_Version_%282%29.svg/50px-Test_Template_Info-Icon_-_Version_%282%29.svg.png)
لەوانەیە بتەوێ پەڕەیەکی بەڵگەدارکردن بۆ ئەم مۆدیوولی سکریبونتۆیە دروست بکەی. دەستکاریکەران دەتوانن ئەم مۆدیوولە لە پەڕەکانی خۆڵەپەتانێ (دروست بکە | ئاوێنە) و ئەزموون (دروست بکە) تاقی بکەنەوە. تکایە پۆلەکان بە ژێرپەڕەی /doc زیاد بکە. ژێرپەڕەکانی ئەم مۆدیوول. |
-- This module implements {{British regnal year}}. It converts a year in the Gregorian
-- calendar to the equivalent English or British regnal year.
local data = mw.loadData( 'Module:British regnal year/data' )
local p = {}
function p.main( frame )
-- If we are being called from #invoke, then the year is the first positional
-- argument. If not, it is the frame parameter.
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
-- Convert the input to an integer if possible. Return "N/A" if the input could
-- not be converted, or if the converted input is too big or too small.
if type( inputYear ) ~= 'number' then
inputYear = tonumber( inputYear )
end
if not inputYear then
return "''نەزانراو''"
end
local currentYear = tonumber( mw.getLanguage('en'):formatDate( 'Y' ) )
if inputYear < 1066 or inputYear > currentYear then
return "''نەزانراو''"
end
-- Find the year in the data page and display the output.
for _, t in ipairs( data ) do
local dataYear = t.year
if inputYear >= dataYear then
-- Get data values from the data page.
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
-- Years with the same monarch.
return mw.ustring.format(
'%d %s – %d %s%s',
currentRegnalYear - 1, linkCurrent, currentRegnalYear, linkCurrent, note or ''
)
elseif inputYear == dataYear and prevEndYear and linkPrev then
-- Years with a different monarch.
return mw.ustring.format(
'%d %s – %d %s%s',
prevEndYear, linkPrev, currentRegnalYear, linkCurrent, note or ''
)
else
-- This should only match the year 1066.
return mw.ustring.format(
'%d %s%s',
currentRegnalYear, linkCurrent, note or ''
)
end
end
end
end
return p