Bước tới nội dung

Mô đun:Ancient Olympiads

Bách khoa toàn thư mở Wikipedia
local data = mw.loadData( 'Module:Ancient Olympiads/data' )local lang = mw.language.getContentLanguage()local length = require( 'Module:Array length')local p = {}function p._main( inputYear )	-- 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.	inputYear = tonumber( inputYear )	if not inputYear or inputYear > tonumber( lang:formatDate( 'Y' ) ) then		return "''Không có''"	end	local dataLength = length(data)	-- Find the year in the data page and display the output.	for i = dataLength, 1, -1 do		local t = data[i]		if inputYear - 1 == t.year then			-- year of the Olympiad, test with = p._main( -495 )			-- The input year in the calendar is one after the expected (-775 for the year 776 BC). This is why all values need to be corrected by 1. 			-- Year of Olympiad creates autolink to same page, therefore eliminated here			return string.format(				'%s [[Olympiad]] ([[%s|victor]][[Winner of the Stadion race|)¹]]',				t.numberOl, t.winner			)		end        if inputYear > t.year then			-- Years 2-4 of the Olympiad, test with = p._main( -494 )  etc.			-- It would be nice, if the string could be as follows:			-- '[[%s]] [[Olympiad]], [[%d BC|year %d]]',			-- t.numberOl, inputYear * - 1 + 1, inputYear - t.year			-- but unfortunately it links to the very same page and won't be displayed as a link but in bold.			return string.format(				'[[%s|%s]] [[Olympiad]], year %d',				t.yearBC, t.numberOl, inputYear - t.year 			)		end	end	-- If input year is before 776 BC (-775), the year of the first Olympiad.	return string.format(		'%d trước [[Olympiad]] [[776 TCN|lần 1]]',		inputYear * -1 - 775	)endfunction p.main( frame )	local args = require( 'Module:Arguments' ).getArgs( frame, {		parentOnly = true	} )	return p._main( args[ 1 ] )endreturn p