如何在 ConTeXt 中列印明天的日期?

如何在 ConTeXt 中列印明天的日期?

我經常需要在 ConTeXt 中顯示日期,但不是今天(如 所示)\date,而是第二天。如何列印明天的日期?

例如 2019 年 8 月 7 日

答案1

在 Lua 中做。功能os.time()為您提供 POSIX 時間戳記形式的當前時間,即自 1970 年 1 月 1 日以來的秒數。增加一天中的秒數即可得到明天的相同時間。將結果輸入os.date。通常os.date將日期格式化為字串,但如果格式參數為"*t",它會傳回一個表,其中時間戳記被分成合理的單位。您可以從中提取日、月和年並將其插入 ConTeXt 的date函數中。

嚴格來說,這只適用於 POSIX 系統,但我不知道有哪個系統可以這樣做不是使用 POSIX 時間戳記。這種方法也應該適用於月和年邊界,甚至閏年。唯一的問題是閏秒,因為如果你精確地在閏秒執行此操作,你可能會在同一天而不是明天結束,但這種情況每隔幾年就會發生一次。

\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

在此輸入影像描述

相關內容