迭代日期

迭代日期

我想创建一个每页一天的日历。我在 for 循环中创建页面,但我不知道如何在每次迭代中保存和增加它。

我考虑过将日、月和年分开保存,但这样我就必须保存每个月有多少天以及哪些年份是闰年。

有没有办法保存日期和/或增加日期?

答案1

有一个旧包,它暂时用 来设置日期\AdvanceDate

\documentclass{article}

\usepackage{pgffor}
\usepackage{advdate}


\begin{document}
\ThisDay{0} % Set the day number to zero
\ThisMonth{1} % Start in January
%\ThisYear{2017} % for example
\foreach \x in {1,...,365} {%
  \AdvanceDate[\x]
  {\hfill\huge\textbf{\today}\hfill}  % Just as an example
  \clearpage
}

\end{document}

从屏幕截图可以看出,该\AdvanceDate命令知道闰年

在此处输入图片描述

答案2

这是一个使用 pgf 宏的答案,请参阅第 90 节“日期和日历实用程序宏”手册内容:

\documentclass{article}

\usepackage{pgfcalendar}

\begin{document}
\pgfcalendar{cal}{2020-08-11}{2020-08-15}{%
  \centering\huge\bfseries%
  \pgfcalendarshorthand wt,                         % weekdayname,
  \pgfcalendarshorthand mt\ \pgfcalendarcurrentday, % monthname dayofmonth,
  \pgfcalendarcurrentyear\clearpage%                % year
}
\end{document}

相同,但使用手册建议的简写:

\documentclass{article}

\usepackage{pgfcalendar}

\begin{document}
\let\%=\pgfcalendarshorthand
\pgfcalendar{cal}{2020-08-11}{2020-08-15}{%
  \centering\huge\bfseries%
  \%wt, \%mt \%d0, \%y0\clearpage%
}
\end{document}

第一页如下所示:

第一页的预览,上面有文字“2020 年 8 月 11 日,星期二”。

相关内容