Diferencia entre revisiones de «Módulo:Fechas»

De Hispanopedia
Sin resumen de edición
es un poco complejo pero igual así funciona. El problema es que no se porque se detecta que hay marco cuando no lo hay
Línea 21: Línea 21:
     local parent    = {}
     local parent    = {}
     if frame == mw.getCurrentFrame() then
     if frame == mw.getCurrentFrame() then
         argumentos = frame:getParent().args
         if  frame.args[3]  or frame.args["año"]  then
         return 'parents'
        argumentos = frame.args
        else
        parent = frame:getParent()
            argumentos = parent.args
         end
     else
     else
         argumentos = frame.args
         argumentos = frame.args
     return 'marco'
     return 'marco'
     end
     end
    --[[
 
    if  frame.args[3] ~= nil or frame.args["año"] ~= nil then
    argumentos = frame.args
    elseif frame:getParent() ~= nil then
    parent = frame:getParent()
        argumentos = parent.args
    else
    return '<span class="error"> Sin parametros </span>'
    end
    --]]
      
      
     -- Obtener el día, el nombre del mes y el año incluyendo para los años negativos a.d.
     -- Obtener el día, el nombre del mes y el año incluyendo para los años negativos a.d.

Revisión del 20:01 20 feb 2014

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}} → 1 de abril de 10
  • {{#Invoke:Fechas|Fecha|2|4|2010}} → 2 de abril de 2010
  • {{#Invoke:Fechas|Fecha||02|-1980}} → febrero de 1980 a. C.
  • {{#Invoke:Fechas|Fecha||enero|0980}} → enero de 980
  • {{#Invoke:Fechas|Fecha|||-0980|enlace=no}} → 980 a. C.
  • {{#Invoke:Fechas|Fecha||enero|0980|mayúscula=sí}} → enero de 980
  • {{#Invoke:Fechas|Fecha}} → 0
  • {{#Invoke:Fechas|Fecha|1=|2=|3=}} → 0
  • {{#Invoke:Fechas|Fecha|26|4|1564|calendario=juliano}} → 26 de abril de 1564

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 z.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     = {}
    if frame == mw.getCurrentFrame() then
        if   frame.args[3]  or frame.args["año"]  then
    	    argumentos = frame.args
        else 
    	    parent = frame:getParent()
            argumentos = parent.args
        end 
    else
        argumentos = frame.args
    return 'marco'
    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] or ''    
    if dia ~='' then 
    	dia=tonumber(dia) -- Eliminar ceros a la izquierda del día.
    end
    local mes = argumentos["mes"] or argumentos[2] or ''
    if mes~='' then 
    	mes =meses[tonumber(mes)] or mes 
    end
    local anyo=tonumber(argumentos["año"] or argumentos[3]) or 0
    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 dia ~='' then
    	return dia .. ' de ' .. mes .. ' de ' .. anyo
    elseif mes~='' then
    	return  mes .. ' de ' .. anyo
    else
    	return anyo
	end
end
 
return z