¿Cómo imprimir la fecha de mañana en ConTeXt?

¿Cómo imprimir la fecha de mañana en ConTeXt?

A menudo tengo que mostrar la fecha en ConTeXt, pero no para hoy, como se muestra con \date, sino para el día siguiente. ¿Cómo imprimir la fecha de mañana?

Por ejemplo, 7 de agosto de 2019.

Respuesta1

Hazlo en Lua. La funciónos.time()le proporciona la hora actual como una marca de tiempo POSIX, es decir, el número de segundos desde el 1/1/1970. Agregue la cantidad de segundos en un día para obtener la misma hora pero mañana. Introduzca ese resultado enos.date. Normalmente os.dateformatea una fecha en una cadena, pero si el argumento de formato es "*t", devuelve una tabla con la marca de tiempo separada en unidades sensibles. De ahí puedes extraer el día, mes y año y conectarlos a datela función de ConTeXt.

Estrictamente hablando, esto sólo funciona en un sistema POSIX, pero no conozco ningún sistema que lo haga.noutilice marcas de tiempo POSIX. Este enfoque también debería funcionar para límites de meses y años e incluso con años bisiestos. El único problema sonsegundos intercalares, porque si ejecuta esto exactamente en un segundo intercalar, es posible que termine el mismo día en lugar de mañana, pero esto solo ocurre cada pocos años.

\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

ingrese la descripción de la imagen aquí

información relacionada