Módulo:Fechas

De Hispanopedia
Revisión del 20:42 17 feb 2014 de es>Juan Mayordomo (Página creada con «local z = {} local meses = { 'enero','febrero','marzo','abril','mayo','junio','julio','agosto','septiembre','octubre','noviembre','diciembre'} function NombreDelMe...»)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)

Uso

Este módulo proporciona operaciones sobre fechas.

Funciones

fecha

Formatea una fecha. Sintaxis:

{{#Invoke:Fechas|fecha|<día>|<mes>|<año>}}
Parámetros
  • enlace:
  • calendario: si toma el valor "juliano"
  • mayúscula: si debe poner la fecha en mayúsculas
Ejemplos
  • {{#Invoke:Fechas|Fecha|01|04|010}}Error de Lua en la línea 36: attempt to compare nil with number.
  • {{#Invoke:Fechas|Fecha|2|4|2010}}Error de Lua en la línea 36: attempt to compare nil with number.
  • {{#Invoke:Fechas|Fecha||02|-1980}}Error de Lua en la línea 36: attempt to compare nil with number.
  • {{#Invoke:Fechas|Fecha||enero|0980}}Error de Lua en la línea 36: attempt to compare nil with number.
  • {{#Invoke:Fechas|Fecha|||-0980|enlace=no}}Error de Lua en la línea 36: attempt to compare nil with number.
  • {{#Invoke:Fechas|Fecha||enero|0980|mayúscula=sí}}Error de Lua en la línea 36: attempt to compare nil with number.
  • {{#Invoke:Fechas|Fecha}}Error de Lua en la línea 36: attempt to compare nil with number.
  • {{#Invoke:Fechas|Fecha|1=|2=|3=}}Error de Lua en la línea 36: attempt to compare nil with number.
  • {{#Invoke:Fechas|Fecha|26|4|1564|calendario=juliano}}Error de Lua en la línea 36: attempt to compare nil with number.

numérica

Convierte una fecha tipo «día de mes de año» en una cadena numérica.

Ejemplos
  • {{#invoke:Fechas|Numerica|24 de diciembre de 2014}}Error en la secuencia de órdenes: la función «Numerica» no existe.
  • {{#invoke:Fechas|Numerica|24 de diciembre del 2014}}Error en la secuencia de órdenes: la función «Numerica» no existe.
  • {{#invoke:Fechas|Numerica|4 de Enero de 1913}}Error en la secuencia de órdenes: la función «Numerica» no existe.
  • {{#invoke:Fechas|Numerica|2 de MARZO de 14}}Error en la secuencia de órdenes: la función «Numerica» no existe.
  • {{#invoke:Fechas|Numerica|2 de septiembre de 1976}}Error en la secuencia de órdenes: la función «Numerica» no existe.
  • {{#invoke:Fechas|Numerica|20141224}}Error en la secuencia de órdenes: la función «Numerica» no existe.
  • {{#invoke:Fechas|Numerica|15 de setiembre de 1976Cualquier cosa}}Error en la secuencia de órdenes: la función «Numerica» no existe.
  • {{#invoke:Fechas|Numerica|Cualquier cosa}}Error en la secuencia de órdenes: la función «Numerica» no existe.
  • {{#invoke:Fechas|Numerica|dd}}Error en la secuencia de órdenes: la función «Numerica» no existe.
  • {{#invoke:Fechas|Numerica|2 de turrón de 1880}}Error en la secuencia de órdenes: la función «Numerica» no existe.

local z = {}

local meses = {
       'enero','febrero','marzo','abril','mayo','junio','julio','agosto','septiembre','octubre','noviembre','diciembre'}

function NombreDelMes(mes)
  -- Función que devuelve el nombre del mes, donde mes es un número entre 1 y 12. 
  -- Si no es así se devuelve el valor de mes.
  -- Por ejemplo, 2  --> febrero
  --              02 --> febrero
  --              abril --> abril
  --              MAYO --> MAYO
    return meses[tonumber(mes)] or mes
end

function z.Fecha(frame)
	-- Función que formatea una fecha
	-- El único parámetro obligatorio es el año o 3.
	-- Obtener los argumentos con los que se llama a la función
    local argumentos = {}
    local parent     = frame:getParent()
 
    if argumentos["año"] or argumentos[3] then
    	argumentos = frame.args
    else
        argumentos = parent.args
    end
    
    -- Obtener el día, el nombre del mes y el año incluyendo para los años negativos a.d.
    local dia = argumentos["día"] or argumentos[1]    
    if dia then 
    	dia=tonumber(dia) -- Eliminar ceros a la izquierda del día.
    end
    local mes =NombreDelMes(argumentos["mes"] or argumentos[2])
    local anyo=tonumber(argumentos["año"] or argumentos[3])
    if anyo < 0 then
    	anyo = -anyo .. ' a. C'
    end

    -- Formatear la fecha dependiendo de si el día, el mes o el año están informados
    if ldia then
    	return dia .. ' de ' .. mes .. ' de ' .. anyo
    elseif mes then
    	return  mes .. ' de ' .. anyo
    else
    	return anyo
	end
end
 
return z