وحدة:Ancient Egypt kings

-- This module implements {{Ancient Egypt kings}}. It converts a year in the Gregorian -- calendar to the equivalent year of the ancient Egyptian era organized by pharaohs and kings.  local data = mw.loadData( 'Module:Ancient Egypt kings/data' ) local lang = mw.language.getContentLanguage()  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 "''N/A''" 	end  	-- Find the length of the data. 	-- We need the length of the data so that we can loop through it backwards. 	-- Normally we can get the length of tables with the # operator, but this 	-- doesn't work with mw.loadData, as mw.loadData uses a metatable, and the 	-- # operator doesn't work for tables that use metatables. 	local dataLength = 0 	for i, t in ipairs( data ) do 		dataLength = i 	end  	-- 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.rulerstart and inputYear - 1 <= t.rulerend then 			-- year of the dynasty, 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.  			return string.format( 				'[[%s]]، %d', 				t.ruler, inputYear - t.rulerstart 			) 		end 	end end  function p.main( frame ) 	-- If you only want to run this module from another Lua module, you can get 	-- rid of this function entirely. This function is only used if you want to 	-- run this individual module from a template. 	local args = require( 'Module:Arguments' ).getArgs( frame, { 		parentOnly = true 	} ) 	return p._main( args[ 1 ] ) end  return p