Módulo:Fecha/zona de pruebas

De Wikipedia, la enciclopedia libre
Este módulo no tiene página de documentación[crear]
local p = {}

-- Cargar módulos
local ModuloArgumentos	= require('Módulo:Argumentos')
local ModuloFormatos	= require('Módulo:Wikidata/Formatos')
local elementoTabla		= require('Módulo:Tablas').elemento
local propiedad			= require('Módulo:Wikidata').propiedad

-- Declarar instancia de mw.language
local lang				= mw.language.new('es')

-- Variables globales
local argumentos, Entidad

-- Cargar datos
local Datos				= mw.loadData('Módulo:Fecha/datos')
local TimestampActual	= os.time()

-- Función de inicialización
function init(frame)
	-- :: Inicializardor
	argumentos	= ModuloArgumentos.obtenerArgumentosConValor(frame)
	Entidad		= mw.wikibase.getEntity(argumentos['id']) or mw.wikibase.getEntity(argumentos['entidad']) or {}
	
	-- Parámetros posicionales
	Uno		= argumentos[1] or ''
	Dos		= argumentos[2] or ''
	Tres	= argumentos[3] or ''
	Cuatro	= argumentos[4] or ''
	Cinco	= argumentos[5] or ''
	Seis	= argumentos[6] or ''
	
	-- Parámetros nombrados
	ReqEdad	= argumentos['edad'] or false
	Link	= argumentos['link'] or false
end

function p.Fecha(frame)
	-- Llamar a la función de inicialización
	init(frame)

	--[[
		La fecha de inicio (o de nacimiento) se obtiene en el siguiente orden:
		
		* Parámetros |1=Año, |2=Mes y |3=Día (y |4=Año, |5=Mes y |6=Día)
			Se extrae el año, mes y día
			Se convierte a Timestamp a través de la función os.time()
			Se formatea la fecha mediante la función mw.lang.formatDate (aunque me parece mejor usar la tabla de meses)
			
		* Parámetros |1=Año-Mes-Día (y |2=Año-Mes-Día)
			Idem para arriba, pero usando las funciones de string para extraer dichos datos

		* Parámetros |1=10 de octubre de 1999
			Devolver el valor tal cual
			
		Se está determinando cómo obtener los datos desde Wikidata,
		y si debe ser pertinente en esta función (pertinente para personas),
		o bien hacerlo en una plantilla y función separadas.

	--]]
	local FechaInicio	= (function()
		if Uno:match('%d%d%d%d') and Dos:match('%d%d') and Tres:match('%d%d') then
			local Timestamp = tostring(os.time({year=Uno, month=Dos, day=Tres}))
			return lang:formatDate('%d de %B de %Y', Timestamp)
		end
		return Uno
	end)()
	
	return FechaInicio
end

return p