从特定日期开始经过的时间

从特定日期开始经过的时间

我想在我的简历中

N年Java经验

其中 N 将根据 LaTeX 文件中提供的日期生成。

最好以四舍五入的年份表示,例如,如果开始日期是 2012-06-04 并且输出是在 2014-04-04 生成的,那么 N 就是 2。

答案1

使用我在回答中定义的函数的宏一年中的某一天

\documentclass{article}

\usepackage{xparse}

\ExplSyntaxOn
\NewDocumentCommand{\roundyears}{mmm}
 {% #1 = year, #2 = month, #3 = day (beginning of experience
  \fp_eval:n
   {
    floor (
     ( \juliandate_calc:nnnn { \day } { \month } { \year } { \use:n }
      -
      \juliandate_calc:nnnn { #3 } { #2 } { #1 } { \use:n } ) / 365
    )
   }
 }

\cs_new:Npn \juliandate_calc:nnnn #1 #2 #3 #4 % #1 = day, #2 = month, #3 = year, #4 = what to do
 {
  #4
   {
    \int_eval:n
     {
      #1 +
      \int_div_truncate:nn
       {
        153 * (#2 + 12 * \int_div_truncate:nn { 14 - #2 } { 12 } - 3) + 2
       }
       { 5 } +
      365 * (#3 + 4800 - \int_div_truncate:nn { 14 - #2 } { 12 } ) +
      \int_div_truncate:nn { #3 + 4800 - \int_div_truncate:nn { 14 - #2 } { 12 } } { 4 } -
      \int_div_truncate:nn { #3 + 4800 - \int_div_truncate:nn { 14 - #2 } { 12 } } { 100 } +
      \int_div_truncate:nn { #3 + 4800 - \int_div_truncate:nn { 14 - #2 } { 12 } } { 400 } -
      32045
     }
   }
 }

\ExplSyntaxOff

\begin{document}

\roundyears{2011}{05}{06}

\roundyears{2012}{05}{03}

\roundyears{2012}{07}{12}

\end{document}

在此处输入图片描述

相关内容