Lua:
Comparando duas datas
Como Fazer:
-- Carregar a biblioteca os para manipulação de datas
local os = require("os")
-- Função para comparar datas
function comparaDatas(data1, data2)
return os.difftime(os.time(data1), os.time(data2))
end
-- Definir duas datas como tabelas
local data_Evento1 = {year=2023, month=4, day=15}
local data_Evento2 = {year=2023, month=4, day=25}
-- Comparar datas
local resultado = comparaDatas(data_Evento1, data_Evento2)
-- Saída de resultado
if resultado < 0 then
print("Evento1 acontece depois do Evento2.")
elseif resultado > 0 then
print("Evento1 acontece antes do Evento2.")
else
print("Os eventos são no mesmo dia.")
end
Saída possível:
Evento1 acontece antes do Evento2.
Mergulho Profundo
Historicamente, em Lua, você tem que penar um pouco com datas porque a linguagem não tem um suporte tão direto para isso quanto outras. A biblioteca padrão os
oferece funções como os.time()
e os.date()
para manipulação de tempo. Alternativamente, você poderia usar bibliotecas de terceiros, como luadate
, para lidar com datas mais complexas se o básico não for suficiente. Em resumo, a diferença é calculada em segundos, graças a os.difftime()
, o que significa que datas mais antigas resultam em números negativos e futuras em positivos quando comparadas a uma data referência.
Ver Também
- Documentação Lua 5.4 (em inglês): https://www.lua.org/manual/5.4/
- LuaDate, uma biblioteca para data e hora (em inglês): https://github.com/Tieske/date
- Tutorial Lua (em inglês), com uma seção dedicada às manipulações de data e hora: https://www.tutorialspoint.com/lua/lua_date_time.htm