
有沒有辦法根據週數自動輸出日期?
更準確地說:我輸入特定年份的周數,作為輸出,我得到從週一到週日的日期?
有幾個用於建立日曆的包,但它們似乎都不允許這樣做。有人有好的建議嗎?
(塔科·霍克沃特(Taco Hoekwater)做了一些接近我的問題的事情,但相反: 週數宏)
答案1
我還添加了與 PFCCalendar 相反但我們可以使用它和一些數學來獲得所需一周的正確開始和結束日期。
PFCalendar 和我的擴充程序TikZ 擴展不提供任何高級接口,因此我們必須處理一些計數、值和轉換。
這不會檢查給定的一周是否確實在一年中。您可以使用它\weekinyear{174}{2021}
來獲得與下面程式碼中的結果相同的結果。
程式碼
\documentclass{article}
\usepackage{pgfcalendar-ext}
\makeatletter
\newcommand*\weekinyear[2]{% #1 = week, #2 = year
\pgfcalendardatetojulian{#2-01-01}{\count@}%
\edef\wiy@first{\the\count@}%
\pgfcalendarjuliantoweekday{\count@}{\count@}%
\edef\wiy@day{\the\count@}%
\pgfcalendarjulianyeartoweek{\wiy@first}{#2}{\count@}%
\ifnum\count@>1 \count@=0 \fi% first day might be in last week of prev year
\pgfintset\count@{\wiy@first+(#1-\count@)*7-\wiy@day}%
\pgfcalendarjuliantodate{\count@}{\wiyStartY}{\wiyStartM}{\wiyStartD}%
\advance\count@ by 6
\pgfcalendarjuliantodate{\count@}{\wiyEndY}{\wiyEndM}{\wiyEndD}%
}
\makeatother
\begin{document}
\weekinyear{18}{2024}
Week 18 in year 2024 starts on
Monday \wiyStartY-\wiyStartM-\wiyStartD\ and
ends on Sunday \wiyEndY-\wiyEndM-\wiyEndD.
\end{document}
輸出
2024 年的第 18 週於 2024 年 4 月 29 日星期一開始,於 2024 年 5 月 5 日星期日結束。