advancedate y ifthenelse en látex

advancedate y ifthenelse en látex

Estoy intentando escribir el programa de estudios de un curso para una clase que se reúne solo ciertos días de la semana (lunes, miércoles). Quiero consultar el día de la clase y adelantarlo 2 días o 5 días dependiendo el día. El siguiente código no parece funcionar (falla en la \ifthenelsedeclaración)

\documentclass{article}
\usepackage{advdate}
\usepackage[ddmmyyyy]{datetime}
\usepackage{tikz}

\newdateformat{syldate}{\THEMONTH/\THEDAY%(\shortdayofweekname%{\THEDAY}{\THEMONTH}{\THEYEAR})}

 \newcommand{\class}[1]{  
 \def \currday {\shortdayofweekname{\the\day}{\the\month}{\the\year}}
 \ifthenelse{\equal{\currday}{Mon}}{\AdvanceDate[2]}{\AdvanceDate[5]}
 \section* {\syldate{\today} \quad #1}
 }

 \SetDate[06/01/2014]

 \begin{document}
 \class{First Class} 
 \class{Second class}
 \class{Class after holiday}

 \end{document}

La razón por la que quiero hacerlo de esta manera es porque quiero verificar si \todayestá en una lista de días festivos y, de ser así, avanzar automáticamente al siguiente día de clase. ¿Algún consejo sobre cómo hacer esto? También se agradece un código más eficiente.

Respuesta1

Con suerte, esto es lo que buscas:

ingrese la descripción de la imagen aquí

\documentclass{article}
\usepackage[ddmmyyyy]{datetime}% http://ctan.org/pkg/datetime
\usepackage{advdate}% http://ctan.org/pkg/advdate

\newdateformat{syldate}{\THEMONTH/\THEDAY/\THEYEAR}%(\shortdayofweekname%{\THEDAY}{\THEMONTH}{\THEYEAR})}

\newsavebox{\MONDAY}\savebox{\MONDAY}{Mon}% Mon

\makeatletter
\newcommand{\cleardate}[1]{%
  \expandafter\let\csname date@#1@d\endcsname\relax% Clear day
  \expandafter\let\csname date@#1@m\endcsname\relax% Clear month
  \expandafter\let\csname date@#1@y\endcsname\relax% Clear year
}
\makeatother

\newcommand{\class}[1]{%
  \cleardate{mydate}% Clear date
  \newdate{mydate}{\the\day}{\the\month}{\the\year}% Store date
  \section*{\displaydate{mydate} \quad #1}% Set heading
  \setbox1=\hbox{\shortdayofweekname{\getdateday{mydate}}{\getdatemonth{mydate}}{\getdateyear{mydate}}}%
  \ifdim\wd1=\wd\MONDAY
    \AdvanceDate[2]
  \else
    \AdvanceDate[5]
  \fi%
}

\SetDate[06/01/2014]

\begin{document}

\class{First class}
\class{Second class}
\class{Third class}
\class{Fourth class}
\class{Fifth class}
\class{Sixth class}
\class{Seventh class}

\end{document}

El proceso almacena la fecha mydatepara unir las interfaces dedatetimeyadvdate. La comparación con el día de la semana se realiza probando el ancho de la palabra Mon. Cada cita corta/de tres letras tiene una longitud diferente:

ingrese la descripción de la imagen aquí

información relacionada