Como imprimir a data de amanhã no ConTeXt?

Como imprimir a data de amanhã no ConTeXt?

Muitas vezes tenho que exibir a data no ConTeXt, mas não para hoje, como é exibido com \date, mas para o dia seguinte. Como imprimir a data de amanhã?

Por exemplo, 7 de agosto de 2019

Responder1

Faça isso na Lua. A funçãoos.time()fornece a hora atual como um carimbo de data / hora POSIX, ou seja, o número de segundos desde 01/01/1970. Adicione o número de segundos em um dia para obter a mesma hora, mas amanhã. Alimente esse resultado emos.date. Normalmente os.dateformata uma data em uma string, mas se o argumento de formato for "*t", ele retorna uma tabela com o carimbo de data/hora separado em unidades sensíveis. A partir disso você pode extrair o dia, mês e ano e conectá-los à datefunção do ConTeXt.

A rigor, isso só funciona em um sistema POSIX, mas não conheço nenhum sistema que funcionenãouse carimbos de data/hora POSIX. Essa abordagem também deve funcionar nos limites de mês e ano e até mesmo em anos bissextos. O único problema sãosegundos bissextos, porque se você executar isso exatamente em um segundo bissexto, poderá acabar no mesmo dia em vez de amanhã, mas isso ocorre apenas a cada poucos anos.

\starttext

\currentdate

\ctxlua{
    local t = os.date("*t", os.time() + 24*60*60)
    context.date{d = t.day, m = t.month, y = t.year}
}

\stoptext

insira a descrição da imagem aqui

informação relacionada