我經常需要在 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