About
Shop
LaTeX
Software
Books
Gallery
News
Contact
Blog
Settings
Account

Calendar for May 2014

\documentclass{article}

\usepackage{etoolbox}
\usepackage{tikz}
\usepackage{pgfcalendar}

\usetikzlibrary{shapes.multipart}

\begin{document}

\newcount\rowcount
\rowcount=1\relax
\newcount\julianday

\csdef{cal-2014-05-05}{Early May BH}
\csdef{cal-2014-05-26}{Spring BH}

\fbox{%
\let\%\pgfcalendarshorthand
\begin{tikzpicture}[x=1.5cm,y=1.75cm]
  \begin{scope}[every node/.style={rectangle,fill=green!5,minimum width=1.4cm}]
  \foreach \x in {0,...,6}
   {\path (\x,0) node {\pgfcalendarweekdayshortname{\x}};}
  \end{scope}
  \pgfcalendar{cal}{2014-05-01}{2014-05-31}{%
% is this the first day of the month?
   \ifnum\pgfcalendarcurrentday=1\relax
% Fill in days from previous month if this isn't a Monday
     \ifdate{Monday}{}%
     {%
% Get last day of previous month
       \julianday = \pgfcalendarcurrentjulian\relax
       \advance\julianday by -\pgfcalendarcurrentweekday\relax
       \foreach \x in {0,...,\numexpr\pgfcalendarcurrentweekday-1}
       {
         \pgfcalendarjuliantodate{\julianday}{\theyear}{\themonth}{\theday}
         \path (\x,-1)
          node
          [
            rectangle split,
            rectangle split parts=2,
            draw] 
         {\number\theday
          \nodepart{two}%
          \parbox[t][1cm]{1.2cm}{\mbox{}}%
         };
         \global\advance\julianday by 1\relax
       }
     }%
   \fi
   \def\thebackground{magenta!4}%
   \ifcsdef{\pgfcalendarsuggestedname}%
   {%
     \def\thecontents{\csuse{\pgfcalendarsuggestedname}}%
     \def\thebackground{black!4}%
   }%
   {%
     \def\thecontents{\mbox{}}%
     \ifdate{weekend}{\def\thebackground{black!4}}{}%
   }%
   \path (\pgfcalendarcurrentweekday,-\rowcount)
    node
    [
      rectangle split,
      rectangle split parts=2,
      rectangle split part fill={cyan!20,\thebackground},
      draw] 
   {\%d-
    \nodepart{two}%
    \parbox[t][1cm]{1.2cm}{\small\thecontents }%
   };
   \ifdate{Sunday}{\global\advance\rowcount by 1}{}%
   \xdef\lastjulianday{\number\pgfcalendarcurrentjulian}%
   \xdef\lastweekday{\number\pgfcalendarcurrentweekday}%
 }%
 \ifnum\lastweekday < 6\relax
   \julianday = \lastjulianday\relax
   \edef\lastweekday{\number\numexpr\lastweekday+1}%
   \foreach \x in {\lastweekday,...,6}
   {
     \global\advance\julianday by 1\relax
     \pgfcalendarjuliantodate{\julianday}{\theyear}{\themonth}{\theday}
     \path (\x,-\rowcount)
      node
      [
        rectangle split,
        rectangle split parts=2,
        draw] 
     {\number\theday
      \nodepart{two}%
      \parbox[t][1cm]{1.2cm}{\mbox{}}%
     };
   }
 \fi
\end{tikzpicture}%
}

\end{document}

Download may2014-bh2.tex or may2014-bh2.pdf.

© 2015 Dickimaw Books. "Dickimaw", "Dickimaw Books" and the Dickimaw parrot logo are trademarks. The Dickimaw parrot was painted by Magdalene Pritchett.

Terms of Use Privacy Policy Cookies Site Map FAQs