%%% Save file as: YEARCAL.TEX Source: FILESERV@SHSU.BITNET
%%% @LaTeX-file{
%%% author = "Michael Barr",
%%% version = "1.0",
%%% date = "1992-06-24",
%%% time = "16:35 EDT",
%%% filename = "yearcal.tex",
%%% address = "Department of Mathematics & Statistics"
%%% McGill University
%%% 805 Sherbrooke St. W
%%% Montreal, QC
%%% Canada H3A 2K6",
%%% telephone = "(514) 398-3806",
%%% FAX = "(514) 398-3899",
%%% email = "barr@math.mcgill.ca (Internet)",
%%% codetable = "ISO/ASCII",
%%% keywords = "LaTeX, year calendar"
%%% checksum = "53683 132 503 5111",
%%% supported = "yes",
%%% docstring = "
%%% This LaTeX file prints the correct Gregorian calendar for any
%%% year between the adoption of the Gregorian calendar (which
%%% happened during the 18th, 19th and even 20th century,
%%% depending on country) and the year 4000. That year is
%%% supposed, according to current plans, not to be a leap year,
%%% although, strictly speaking, that ought to happen in the year
%%% 3200.
%%%
%%% The current definition of the Gregorian calendar is:
%%% Years divisible by 4 are leap years; except
%%% years divisible by 100 are not leap years; except
%%% years divisible by 400 are leap years; except
%%% years divisible by 4000 are not leap years.
%%% So the years 1800 and 1900 were not leap years, but 2000 will be.
%%% }
%%% ====================================================================
% The current definition of the Gregorian calendar is:
% Years divisible by 4 are leap years; except
% years divisible by 100 are not leap years; except
% years divisible by 400 are leap years; except
% years divisible by 4000 are not leap years.
% So the years 1800 and 1900 were not leap years, but 2000 will be.
\typeout{}
\typein[\theyear]{Please enter the year:}
\newcount\yearnum \yearnum=\theyear
\documentstyle{article}
\textwidth 7.05in \oddsidemargin-.255in
\textheight=9in \headheight =0pt \topmargin=0pt\headsep=0pt
\footheight=0pt\footskip=0pt
\pagestyle{empty}\thispagestyle{empty}
\newcount\febdays \febdays=28
\newcount\yearnuma
\newcount\yearnumb
\newcount\firstdate \newcount \lastdate \newcount \datenum
\def\month#1#2#3{\initialdate{#1}{#2}%
\begin{tabular}{|rrrrrrr|} \hline
\multicolumn{7}{|c|}{#3}\\ \hline
Su&Mo&Tu&We&Th&Fr&Sa\\ \hline
\day{ 1}&\day{ 2}&\day{ 3}&\day{ 4}&\day{ 5}&\day{ 6}&\day{ 7}\\
\day{ 8}&\day{ 9}&\day{10}&\day{11}&\day{12}&\day{13}&\day{14}\\
\day{15}&\day{16}&\day{17}&\day{18}&\day{19}&\day{20}&\day{21}\\
\day{22}&\day{23}&\day{24}&\day{25}&\day{26}&\day{27}&\day{28}\\
\day{29}&\day{30}&\day{31}&\day{32}&\day{33}&\day{34}&\day{35}\\
\day{36}&\day{37}&\day{38}&\day{39}&\day{40}&\day{41}&\day{42}\\ \hline
\end{tabular}\global\advance\firstdate by #2
\ifnum\firstdate>35 \global\advance\firstdate by -35
\else\global\advance \firstdate by -28 \fi}
\def\day#1{\advance \datenum by#1
\ifnum\datenum>0 \ifnum\datenum>\lastdate\else\number\datenum \fi\fi}
\def\initialdate#1#2{\datenum=1 \advance\datenum by -#1 \lastdate=#2}
\newcount\xa\newcount\xb\newcount\xc
\newcount\ya\newcount\yb\newcount\yc\newcount\yd
\xa=0 \xb=235 {\multiply \xb by 2 \global\xc=\xb }
\yd=0 \yc=136 {\multiply \yc by 2 \global \yb=\yc }
{\multiply \yc by 3 \global \ya=\yc }
\begin{document}
\font\gross=cminch
\def\setup{\yearnuma=\yearnum{%
\divide\yearnuma by 100
\multiply\yearnuma by 100
\ifnum\yearnum=\yearnuma \divide \yearnum by 100 \fi
\ifodd\yearnum\relax
\else \divide\yearnum by 2
\ifodd\yearnum\relax
\else \global\febdays=29
\fi
\fi
}%
{%
\advance\yearnum by -1
\yearnuma=\yearnum
\divide\yearnuma by 400 \multiply \yearnuma by -400
\advance\yearnuma by \yearnum % \yearnuma=\yearnum mod 400
\firstdate=\yearnuma
\yearnumb=\yearnuma
\divide\yearnumb by 100 \divide\yearnuma by 4
\advance\yearnuma by -\yearnumb % correct leapyear count by centuries
\advance\firstdate by \yearnuma % add number of leapyears
\yearnuma=\firstdate
\divide\yearnuma by 7 \multiply\yearnuma by 7
\advance\firstdate by -\yearnuma % \firstdate = #leapyears mod 7
% Now do final correction for year 0.
\global\firstdate=\ifcase\firstdate2 \or3 \or4 \or5 \or6 \or7 \or1 \fi
}%
}%
\setup
\begin{center}{\gross \number\yearnum }\end{center}
\unitlength.01in
\begin{picture}(705,543)
\put(\xa,\ya){\month{\firstdate}{31}{January}}
\put(\xb,\ya){\month{\firstdate}{\febdays}{February}}
\put(\xc,\ya){\month{\firstdate}{31}{March}}
\put(\xa,\yb){\month{\firstdate}{30}{April}}
\put(\xb,\yb){\month{\firstdate}{31}{May}}
\put(\xc,\yb){\month{\firstdate}{30}{June}}
\put(\xa,\yc){\month{\firstdate}{31}{July}}
\put(\xb,\yc){\month{\firstdate}{31}{August}}
\put(\xc,\yc){\month{\firstdate}{30}{September}}
\put(\xa,\yd){\month{\firstdate}{31}{October}}
\put(\xb,\yd){\month{\firstdate}{30}{November}}
\put(\xc,\yd){\month{\firstdate}{31}{December}}
\end{picture}\newpage
\end{document}}