BRTime é uma biblioteca PAWN desenvolvida para fornecer data e hora local do servidor (UTC-3) de forma precisa e eficiente. Ela foi criada com base em algoritmos matemáticos robustos para cálculos de datas sem a necessidade de bibliotecas externas ou chamadas nativas pesadas.
A função BR_GetDate utiliza uma variação otimizada do algoritmo de conversão de dias absolutos para data gregoriana, conhecido por sua precisão e desempenho. Baseado na versão implementada por Howard Hinnant e utilizado em linguagens como C++, Rust e Python, este método converte timestamps Unix diretamente para ano/mês/dia.
Este algoritmo evita o uso de tabelas de dias por mês ou estruturas complexas, usando apenas divisões e multiplicações para extrair os componentes da data. Já a função IsLeapYear segue a regra gregoriana clássica, conferindo simplicidade e confiabilidade.
-
BR_GetTime(&hour, &minute, &second)
Retorna a hora atual do servidor (UTC-3). -
BR_GetDate(&year, &month, &day)
Retorna a data atual do servidor (UTC-3). -
IsLeapYear(year)
Verifica se o ano fornecido é bissexto.
new h, m, s, y, mo, d;
BR_GetTime(h, m, s);
BR_GetDate(y, mo, d);
printf("Data: %02d/%02d/%d", d, mo, y);
printf("Hora: %02d:%02d:%02d", h, m, s);
if(IsLeapYear(y)) {
print("Este ano é bissexto.");
}- Copie
brtime.incpara sua pastainclude/. - No seu script PAWN, adicione:
#include <brtime>
Este projeto está licenciado sob os termos da Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0).
Você pode usar, modificar e redistribuir este código desde que forneça os devidos créditos e não o utilize para fins comerciais.
Mais detalhes na LICENSE.