Estou acompanhando a pergunta aqui. Meu objetivo principal é escrever um plano de estudos e cronograma para uma aula que ocorre apenas em determinados dias da semana, contabilizando alguns feriados. Nissopergunta, perguntei sobre como pular dias da semana que não sejam M ou W.
Agora quero pular para o próximo dia de aula se o dia de aula atual cair em feriado. Digamos que eu tenha uma lista de feriados {13/01/2014, 22/01/2014}. Quero verificar se mydate ou hoje no código a seguir cai em algum desses dias e pular para o próximo dia de aula (M ou W), conforme o caso. Por exemplo, quero que a terceira aula caia em 15/1 e a sexta aula caia em 27/1. Não há problema se não for perfeitamente generalizável (ou seja, não há necessidade de verificar o ano e posso ter certeza de que os feriados listados na matriz são M ou W).
\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}
Estava pensando em usar \foreach
mas não funciona pois foreach
vai pular para cada elemento da lista. Achei \AdvanceDate[0]
que funcionaria, mas não parece armazenar \today
depois de sair do loop. Qualquer ajuda é apreciada.