Skip to content

LuaDate

Representa una fecha. Se obtiene al llamar a get_date() o al leer un campo Date desde un ResultSet.

Conversión a string

lua
tostring(d)  -- → "2024-01-15"
"" .. d      -- → "2024-01-15"

Funciones globales

get_date()

Obtiene la fecha actual.

lua
local d = get_date()

date_add()

Suma o resta unidades de tiempo a una fecha.

lua
local nueva = date_add(valor, unidades, unidad)

Soporta unidades: days, months, years, hours, minutes, seconds.

Creación

lua
local d = get_date()

-- Desde función global con año, mes, día
local navidad = date(2026, 12, 25)

Métodos de acceso

lua
d:year()                -- → 2026 (int)
d:month()               -- → 6 (int, 1-12)
d:day()                 -- → 7 (int, 1-31)
d:day_of_week()         -- → "domingo" (string, en español)
d:day_of_week_number()  -- → 1 (int, 1=lunes, 7=domingo)

Formato

lua
d:format()                          -- → "15/01/2024" (según cultura de la app)
d:format("yyyy-MM-dd")              -- → "2024-01-15" (formato personalizado)
d:format("dd MMM yyyy", "es-AR")    -- → "15 ene. 2024" (cultura explícita)

El formato sigue los patrones de formato de fecha de .NET.

Operaciones

lua
-- Diferencia entre fechas (en días)
d:days_between(otra_fecha)  -- → int

-- Sumar/restar unidades
d:add(5, "days")        -- → LuaDate (también "months", "years")
d:add(-3, "months")

-- Redondear a un intervalo
d:round(15, "days")     -- → LuaDate, redondea al día 1 o 15
d:round(3, "months")    -- → LuaDate, redondea al inicio del trimestre
d:round(2, "years")     -- → LuaDate, redondea al año par más cercano
d:round(1, "months", "floor")  -- → LuaDate, redondea hacia abajo (inicio del mes)
d:round(7, "days", "ceil")     -- → LuaDate, redondea hacia arriba

Soporta unidades: days, months, years.

Modo de redondeo (opcional): "round" (defecto, redondeo estándar), "floor" (siempre hacia abajo), "ceil" (siempre hacia arriba).