Módulo:Zona de pruebas/Juan Mayordomo/Fecha
Apariencia
Este módulo no tiene página de documentación[crear]
local z = {}
local meses = {
'enero','febrero','marzo','abril','mayo','junio','julio','agosto','septiembre','octubre','noviembre','diciembre'}
function z.fechaActual()
local d = os.date('!*t')
local fecha = {}
fecha.anyo = d.year
fecha.mes = d.month
fecha.dia = d.day
fecha.hora = d.hour
fecha.minuto = d.min
fecha.segundo = d.sec
return fecha
end
function validar(fecha)
fecha.anyo = tonumber(fecha.anyo)
fecha.mes = tonumber(fecha.mes)
fecha.dia = tonumber(fecha.dia)
fecha.hora = tonumber(fecha.hora)
fecha.minuto = tonumber(fecha.minuto)
fecha.segundo = tonumber(fecha.segundo)
-- Falta validar que es una fecha válida
end
function z.edad(fecha1, fecha2)
--Función que devuelve la edad en años entre dos fechas
--Se supone que las fechas se han validado previamente.
if not fecha1 then
return -- falta devolver un error
end
if not fecha2 then
fecha2=z.fechaActual()
end
local anyos = fecha2.anyo - fecha1.anyo
--if true then return require('Módulo:Tablas').tostring(fecha2) end
if fecha2.mes < fecha1.mes or
(fecha2.mes == fecha1.mes and fecha2.dia < fecha1.dia) then
anyos = anyos - 1
end
if anyos < 0 then
return -- falta devolver error
elseif anyos == 0 then
return 'menos de un año'
elseif anyo == 1 then
return 'un año'
else
return anyos .. ' años'
end
end
function z.llamadaDesdeUnaPlantilla(frame)
function obtenerFecha(dia, mes, anyo)
local resultado={}
if dia then
resultado.dia = dia
resultado.mes = mes
resultado.anyo = anyo
validar(resultado)
return resultado
end
end
local args = frame.args
local funcion = z[args[1]]
local fecha1 = obtenerFecha(args[2], args[3], args[4])
local fecha2 = obtenerFecha(args[5], args[6], args[7])
return funcion(fecha1, fecha2)
end
return z