Module:Fecha

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 -- El año 0 no existe, por lo que no se debe contar if fecha1.anyo < 0 and fecha2.anyo > 0 then anyos = anyos - 1 end --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 anyos == 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