anunciar e pular datas com base em feriados

anunciar e pular datas com base em feriados

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 \foreachmas não funciona pois foreachvai pular para cada elemento da lista. Achei \AdvanceDate[0]que funcionaria, mas não parece armazenar \todaydepois de sair do loop. Qualquer ajuda é apreciada.

informação relacionada