看来我没办法通过 google 解决这个问题。我想获取下一年的最后两位数字。我 google 了一下,今年的两位数字可以通过\Year{\the\year}
\def\Year#1{\def\yy@##1##2##3##4;{##3##4}\expandafter\yy@#1;}
然后,我试着用计数器来定义明年
\newcounter{nyear}
\setcounter{nyear}{\the\year}
\addtocounter{nyear}{1}
问题是\Year{\thenyear}
不起作用,我不知道为什么......
答案1
用于获取相对于当前日期偏移量的任何年份的最后两位数字的通用版本。警告:假设年份为四位数字。
\documentclass{article}
\newcommand{\lasttwoofyear}[1]{% #1 is the offset
\expandafter\getlasttwo\number\numexpr\year+(#1)\relax\relax
}
\def\getlasttwo#1#2#3#4\relax{#3#4}
\begin{document}
\lasttwoofyear{0} (This year)
\lasttwoofyear{1} (Next year)
\lasttwoofyear{-18} (A few years ago)
\end{document}
使用expl3
(via xparse
)所以我们不必依赖我们操作的字符串有四个项目。
\documentclass{article}
\usepackage{xparse}
\ExplSyntaxOn
\NewExpandableDocumentCommand{\lasttwoofyear}{m}
{% #1 is the offset
\egreg_lasttwo:f { \int_to_arabic:n { \c_sys_year_int + (#1) } }
}
\cs_new:Nn \egreg_lasttwo:n
{
\tl_range:nnn { #1 } { -2 } { -1 }
}
\cs_generate_variant:Nn \egreg_lasttwo:n { f }
\ExplSyntaxOff
\begin{document}
\lasttwoofyear{0} (This year)
\lasttwoofyear{1} (Next year)
\lasttwoofyear{-18} (A few years ago)
\end{document}