summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/calendar/dates.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/calendar/dates.sty')
-rw-r--r--Master/texmf-dist/tex/latex/calendar/dates.sty780
1 files changed, 780 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/calendar/dates.sty b/Master/texmf-dist/tex/latex/calendar/dates.sty
new file mode 100644
index 00000000000..01b80472098
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/calendar/dates.sty
@@ -0,0 +1,780 @@
+%%
+%% This is file `dates.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% dates.dtx (with options: `style')
+%% This file is part of the Calendar package,
+%% Copyright (C) 1996, 1997 Frank Bennett, Jr.
+%% All rights reserved.
+%% ------------------------------------------
+%%
+%% IMPORTANT NOTICE:
+%%
+%% You are not allowed to change this file. You may however copy
+%% this file to a file with a different name and then change the
+%% copy if (a) you do not charge for the modified code, (b) you
+%% acknowledge the author of this file in the new file, if it
+%% is distributed to others, and (c) you attach these same
+%% conditions to the new file.
+%%
+%% You are not allowed to distribute this file alone. You are not
+%% allowed to take money for the distribution or use of this file
+%% (or a changed version) except for a nominal charge for copying
+%% etc.
+%%
+%% You are allowed to distribute this file under the condition that
+%% it is distributed with all of its contents, intact.
+%%
+%% For error reports, or offers to help make this a more powerful,
+%% friendlier, and altogether more thrilling package, please contact me on
+%% fb@soas.ac.uk. Better yet, make a contribution to
+%% my pension. Account details available on request.
+%% ------------------------------------------
+%%
+\NeedsTeXFormat{LaTeX2e}[1995/06/01]
+\ProvidesPackage{dates}
+ [1998/01/17 17:12:39 3.1 Dates parsing support (Frank Bennett)]
+\newcount\dates@one
+\newcount\dates@two
+\newcount\dates@langnum
+\newtoks\dates@reg@a
+\newtoks\dates@reg@b
+\newtoks\dates@reg@c
+\def\DeclareCalendarLanguage#1#2#3#4#5{
+ \advance\dates@two by1\relax%
+ \expandafter\edef\csname dates@#1@langnum\endcsname{\the\dates@two}%
+ \ifnum\dates@two=1\relax\def\dates@default@language{#1}\fi%
+ \DeclareOption{#1}{%
+ \expandafter\expandafter\expandafter%
+ \dates@langnum\csname dates@#1@langnum\endcsname\relax%
+ \dates@buildcase{1}{\theweekday}{\dates@weekd}#2{}%
+ \dates@buildcase{1}{\theshortweekday}{\dates@weekd}#3{}%
+ \dates@buildcase{0}{\themonth}{\dates@month}#4{}%
+ \dates@buildcase{0}{\theshortmonth}{\dates@month}#5{}}}
+\def\dates@buildcase#1#2#3{%
+ \dates@one=#1\relax%
+ \dates@reg@c={#3}%
+ \gdef\dates@temp@a{#2}%
+ \dates@reg@a={}%
+ \dates@reg@b={}%
+ \def\dates@temp@c{}%
+ \dates@@buildcase}
+\def\dates@@buildcase#1{%
+ \ifcat$#1$%
+ \let\next\dates@@@buildcase%
+ \else%
+ \let\next\dates@@buildcase%
+ \dates@reg@a={\or#1}%
+ \dates@reg@b=\expandafter{\dates@temp@c}%
+ \edef\dates@temp@c{\the\dates@reg@b\the\dates@reg@a}
+ \fi%
+ \next}
+\def\dates@@@buildcase{%
+ \ifnum\dates@one=0\relax%
+ \dates@reg@a=\expandafter{\dates@temp@c}%
+ \else%
+ \dates@reg@a=\expandafter\expandafter\expandafter%
+ {\expandafter\@gobble\dates@temp@c}%
+ \fi%
+ \expandafter\edef\dates@temp@a{%
+ \noexpand\ifcase\the\dates@reg@c%
+ \the\dates@reg@a%
+ \noexpand\fi}}
+\RequirePackage{overword}[1997/10/29]
+\InputIfFileExists{dates.cfg}{}{}
+\@ifundefined{theweekday}{%
+ \DeclareCalendarLanguage{english}
+ {{Sun}{Mon}{Tue}{Wed}{Thu}{Fri}{Sat}}
+ {{Sunday}{Monday}{Tuesday}{Wednesday}{Thursday}{Friday}{Saturday}}
+ {{Jan}{Feb}{Mar}{Apr}{May}{Jun}{Jul}{Aug}{Sep}{Oct}{Nov}{Dec}}
+ {{January}{February}{March}{April}{May}{June}{July}{August}{September}
+ {October}{November}{December}}}
+ {}
+\ExecuteOptions{\dates@default@language}
+\ProcessOptions
+\long\gdef\dateread#1{%
+ \gdef\dates@action{#1}%
+ \gdef\dates@subranges{}%
+ \dates@subrange@start=0%
+ \dates@subrange@end=0%
+ \dates@read@default}
+\long\gdef\dates@read@default{%
+ \global\dates@time@start=0%
+ \global\dates@time@end=0%
+ \setyear{1900}%
+ \global\dates@month=0%
+ \global\dates@day=0%
+ \global\dates@weekd@target=7%
+ \gdef\theshorttext{}%
+ \gdef\thelongtext{}%
+ \global\dates@suppressfalse%
+ \global\let\dates@init\relax%
+ \global\let\dates@increment\relax%
+ \global\let\dates@read=\dates@read@default%
+ \global\let\dates@@@read=\dates@@@read@default%
+ \global\let\dates@@@@read=\dates@@@@read@default%
+ \global\let\dates@read@exit=\dates@read@exit@default%
+ \bgroup%
+ \@ifnextnparchar\dates@serious@brace%
+ {\message{This should never happen}}%
+ {\dates@@read}%
+ {\egroup}}
+\long\def\dates@@read#1#{%
+ \let\end\relax%
+ \xdef\cal@temp{#1 }%
+ \egroup%
+ \expandafter\dates@@@read\cal@temp}
+\def\dates@@@read@default{%
+ \global\let\dates@@@read\dates@@@read@default%
+ \@ifoverword\dates@serious@brace%
+ {\expandafter\dates@analyze\@overword{}%
+ \dates@@@@read}%
+ {\expandafter\dates@analyze\@overword{}%
+ \dates@@@read}%
+ {\expandafter\dates@analyze\@overword{}%
+ \ifnum\dates@year>0\relax%
+ \let\dates@read\relax%
+ \dates@read@exit%
+ \fi}}
+\bgroup
+ \catcode`\[=1
+ \global\let\dates@funny@brace=[
+ \catcode`\<=1
+ \global\let\dates@bent@brace=<
+\egroup
+\gdef\dates@@@@read@default#1{%
+ \global\let\dates@@@@read\dates@@@@read@default%
+ \global\let\dates@@@read\dates@@@read@default%
+ \dates@textcount1%
+ \def\theshorttext{#1}%
+ \ifnum\dates@textcount=\dates@langnum\relax%
+ \gdef\thelongtext{}%
+ \fi%
+ \bgroup%
+ \catcode`\[=1\catcode`\]=2\relax%
+ \catcode`\<=1\catcode`\>=2\relax%
+ \@ifnextnparchar\dates@funny@brace%
+ {\dates@@@@@read}%
+ {\global\let\thelongtext\theshorttext%
+ \@ifnextnparchar\dates@bent@brace%
+ {\dates@@@@read@bent}%
+ {\egroup%
+ \dates@read@exit}%
+ {\message{This can't happen}}}%
+ {\egroup%
+ \dates@read@exit}}
+\def\dates@@@@@read#1{%
+ \egroup%
+ \ifnum\dates@textcount=1\relax
+ \gdef\thelongtext{#1}%
+ \else%
+ \ifnum\dates@textcount=\dates@langnum\relax%
+ \gdef\thelongtext{#1}%
+ \fi%
+ \fi%
+ \bgroup%
+ \catcode`\<=1\catcode`\>=2\relax%
+ \@ifnextnparchar\dates@bent@brace%
+ {\dates@@@@read@bent}%
+ {\egroup%
+ \dates@read@exit}%
+ {\egroup%
+ \dates@read@exit}}
+\def\dates@@@@read@bent#1{%
+ \egroup%
+ \advance\dates@textcount by1\relax%
+ \ifnum\dates@textcount=\dates@langnum\relax
+ \def\theshorttext{#1}%
+ \fi%
+ \bgroup%
+ \catcode`\[=1\catcode`\]=2\relax%
+ \catcode`\<=1\catcode`\>=2\relax%
+ \@ifnextnparchar\dates@funny@brace%
+ {\dates@@@@@read}%
+ {\ifnum\dates@textcount=\dates@langnum\relax%
+ \gdef\thelongtext{}%
+ \fi%
+ \@ifnextnparchar\dates@bent@brace%
+ {\dates@@@@read@bent}%
+ {\egroup%
+ \dates@read@exit}%
+ {\message{This can't happen}}}%
+ {\egroup%
+ \dates@read@exit}}
+\def\dates@read@exit@default{%
+ \dates@verify%
+ \dates@fix%
+ \dates@lastdate\dates@date%
+ \ifdates@suppress@global%
+ \else%
+ \ifdates@suppress%
+ \else%
+ \dates@action%
+ \fi%
+ \fi%
+ \dates@read}
+\def\dates@verify{%
+ \ifnum\dates@month=0%
+ \ifdates@requiremonth%
+ \PackageError{dates}{Missing month.}{}%
+ \else%
+ \global\dates@month=1%
+ \fi%
+ \fi%
+ \ifnum\dates@day=0%
+ \ifdates@requireday%
+ \PackageError{dates}{Missing day of the month.}{}%
+ \else%
+ \global\dates@day=1%
+ \fi%
+ \fi%
+ \ifnum\dates@year=0\relax%
+ \PackageError{dates}{Missing year in ordinary date.}{}%
+ \fi}
+\def\dates@read@exit@range{%
+ \dates@fix%
+ \dates@subrange@end\dates@date%
+ \dates@reg@a=\expandafter{\dates@subranges}%
+ \xdef\dates@subranges{%
+ \the\dates@reg@a%
+ \noexpand\delim{\the\dates@subrange@start}%
+ {\the\dates@date}}%
+ \global\let\dates@read@exit\dates@read@exit@default%
+ \dates@read@exit}
+\def\dates@read@exit@recurse{%
+ \expandafter\ifcat\expandafter$\dates@subranges$%
+ \PackageError{dates}{No range given}%
+ {You need to specify a range before %
+ recursive entries and formulae}%
+ \fi\relax%
+ \ifx\dates@init\relax%
+ \ifnum\dates@day>0\relax%
+ \dates@everymonth@day\dates@day%
+ \ifnum\dates@month>0\relax%
+ \dates@everyyear@month\dates@month%
+ \global\let\dates@init\dates@init@yearly@doy%
+ \global\let\dates@increment\dates@increment@yearly@doy%
+ \else%
+ \global\let\dates@init\dates@init@monthly@dom%
+ \global\let\dates@increment\dates@increment@monthly@dom%
+ \fi%
+ \else%
+ \PackageError{dates}{Incomplete recursive entry}%
+ {You need to specify a day of the week or a day of %
+ the month or something for entries beginning with %
+ the word Every.}
+ \fi%
+ \fi%
+ \global\let\delim\dates@read@exit@@recurse%
+ \dates@subranges%
+ \dates@read}
+\def\dates@read@exit@@recurse#1#2{%
+ \dates@subrange@start#1\relax%
+ \dates@subrange@end#2\relax%
+ \dates@init%
+ \caldate%
+ \ifdates@suppress@global%
+ \else%
+ \ifdates@suppress%
+ \else%
+ \dates@action%
+ \fi%
+ \fi%
+ \let\next\dates@read@exit@@@recurse%
+ \dates@read@exit@@@recurse}
+\def\dates@read@exit@@@recurse{%
+ \dates@increment\relax%
+ \ifnum\dates@date>\dates@subrange@end\relax%
+ \let\next\relax%
+ \else%
+ \caldate%
+ \ifdates@suppress@global%
+ \else%
+ \ifdates@suppress%
+ \else%
+ \dates@action%
+ \fi%
+ \fi%
+ \fi%
+ \next}
+\def\dates@increment@daily{%
+ \global\advance\dates@date by 1\relax}
+\def\dates@init@weekly{%
+ \global\dates@date\dates@subrange@start%
+ \mod7\dates@date\dates@weekd%
+ \dates@three=\dates@weekd@target\relax%
+ \advance\dates@three by -\dates@weekd\relax%
+ \ifnum\dates@three<0\relax%
+ \advance\dates@three by7%
+ \fi%
+ \global\advance\dates@date by\dates@three\relax}
+\def\dates@init@semiweekly{%
+ \dates@verify%
+ \dates@fix%
+ \ifnum\dates@subrange@start>\dates@date%
+ \dates@ct@z\dates@subrange@start%
+ \advance\dates@ct@z by-\dates@date%
+ \mod{14}\dates@ct@z\dates@catch%
+ \global\dates@date\dates@subrange@start%
+ \global\advance\dates@date by\dates@catch%
+ \fi}
+\def\dates@increment@weekly{%
+ \global\advance\dates@date by7\relax}
+\def\dates@increment@semiweekly{%
+ \global\advance\dates@date by14\relax}
+\def\dates@init@monthly@dow{%
+ \global\dates@date\dates@subrange@start%
+ \dates@init@monthly@@dow}
+\def\dates@init@monthly@@dow{%
+ \let\dates@init@monthly@dow@recurse\relax%
+ \caldate%
+ \nextday\dates@weekd@target%
+ \caldate%
+ \dates@one\dates@day%
+ \divide\dates@one by 7\relax%
+ \multiply\dates@one by 7\relax%
+ \ifnum\dates@modulo>\dates@one\relax%
+ \dates@two\dates@modulo%
+ \advance\dates@two by -\dates@one%
+ \global\advance\dates@date by \dates@two%
+ \else%
+ \ifnum\dates@modulo<\dates@one\relax%
+ \dates@next@month%
+ \let\dates@init@monthly@dow@recurse\dates@init@monthly@@dow%
+ \fi%
+ \fi%
+\dates@init@monthly@dow@recurse}
+\def\dates@init@monthly@dom{%
+ \global\dates@date\dates@subrange@start%
+ \dates@init@monthly@@dom}
+\def\dates@init@monthly@@dom{%
+ \let\dates@init@monthly@dom@recurse\relax%
+ \caldate%
+ \ifnum\dates@day>\dates@everymonth@day%
+ \dates@next@month%
+ \let\dates@init@monthly@dom@recurse\dates\init@monthly@@dom%
+ \else%
+ \global\dates@day\dates@everymonth@day%
+ \dates@fix%
+ \fi%
+ \dates@init@monthly@dom@recurse}
+\def\dates@init@yearly@doy{%
+ \global\dates@date\dates@subrange@start%
+ \dates@init@yearly@@doy}
+\def\dates@init@yearly@@doy{%
+ \let\dates@init@yearly@doy@recurse\relax%
+ \caldate%
+ \dates@ct@z\dates@day@offset%
+ \global\dates@day\dates@everymonth@day%
+ \global\dates@month\dates@everyyear@month%
+ \dates@fix%
+ \ifnum\dates@ct@z>\dates@day@offset%
+ \nextyear%
+ \dates@fix%
+ \let\dates@init@yearly@doy@recurse\dates@init@yearly@@doy%
+ \fi%
+ \dates@init@yearly@doy@recurse}
+\def\dates@increment@monthly@dow{%
+ \dates@next@month%
+ \dates@init@monthly@@dow}
+\def\dates@increment@monthly@dom{%
+ \dates@next@month%
+ \dates@init@monthly@@dom}
+\def\dates@increment@yearly@doy{%
+ \nextyear%
+ \global\dates@month=\dates@everyyear@month\relax%
+ \global\dates@day=\dates@everymonth@day\relax%
+ \dates@fix%
+ \dates@init@yearly@@doy}
+\long\def\dates@@@read@function #1 #2 {%
+ \xdef\dates@init{\csname#1\endcsname}%
+ \xdef\dates@increment{\csname#2\endcsname}%
+ \@ifnextnparchar\dates@serious@brace%
+ {\bgroup%
+ \makeatletter%
+ \expandafter\dates@@@read@@function}%
+ {\PackageError%
+ {dates}%
+ {Extra text after function names}%
+ {The third argument must be in curly braces.}}%
+ {\relax}}
+\long\def\dates@@@read@@function#1{%
+ \long\gdef\dates@temp{#1}%
+ \egroup%
+ \dates@temp%
+ \let\dates@temp\relax%
+ \dates@@@@read@default}
+\long\def\dates@analyze#1#2#{%
+ \ifcat\noexpand#11%
+ \def\dates@zero{0}%
+ \expandafter\dates@check@hyphen\@overword-{}%
+ \ifx\dates@arg@b\dates@zero%
+ \expandafter\dates@check@colon\@overword:{}%
+ \ifx\dates@arg@b\dates@zero%
+ \expandafter\ifnum\@overword>31%
+ \setyear{\dates@arg@a}%
+ \else%
+ \ifnum\dates@day>0%
+ \dates@dayerror%
+ \else%
+ \global\dates@day=\dates@arg@a%
+ \fi%
+ \fi%
+ \else%
+ \expandafter\dates@strip@colon\dates@arg@b%
+ \global\dates@time@start=\dates@arg@a%
+ \global\multiply\dates@time@start by 60%
+ \global\advance\dates@time@start by \dates@arg@b%
+ \global\dates@time@end=\dates@time@start%
+ \fi%
+ \else%
+ \expandafter\dates@strip@hyphen\dates@arg@b%
+ \let\dates@temp\dates@arg@b%
+ \expandafter\dates@check@colon\dates@arg@a:{}%
+ \ifx\dates@arg@b\dates@zero%
+ \else%
+ \expandafter\dates@strip@colon\dates@arg@b%
+ \fi%
+ \global\dates@time@start=\dates@arg@a\relax%
+ \global\multiply\dates@time@start by 60\relax%
+ \global\advance\dates@time@start by \dates@arg@b\relax%
+ \expandafter\dates@check@colon\dates@temp:{}%
+ \ifx\dates@arg@b\dates@zero%
+ \else%
+ \expandafter\dates@strip@colon\dates@arg@b%
+ \fi%
+ \global\dates@time@end=\dates@arg@a\relax%
+ \global\multiply\dates@time@end by 60\relax%
+ \global\advance\dates@time@end by \dates@arg@b%
+ \fi%
+ \else%
+ \dates@execute#1#2XXX{}%
+ \fi}
+\def\dates@execute#1#2#3#4#{%
+ \ifcat#1\relax%
+ \expandafter\csname%
+ \string#1#2#3mac\endcsname%
+ \else%
+ \global\dates@catch=`#1\relax
+ \global\advance\dates@catch by-65
+ \dates@reg@a=\expandafter{\ifcase\dates@catch
+ a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or k\or l\or
+ m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or
+ y\or z\else #1\fi}
+ \csname\the\dates@reg@a#2#3mac\endcsname%
+ \fi}%
+\def\evemac{%
+ \global\let\dates@read@exit=\dates@read@exit@recurse}
+\def\daymac{%
+ \global\let\dates@init=\dates@init@daily%
+ \global\let\dates@increment=\dates@increment@daily}
+\def\dates@init@daily{%
+ \global\dates@date=\dates@subrange@start}
+\def\othmac{%
+ \global\let\dates@init=\dates@init@semiweekly%
+ \global\let\dates@increment=\dates@increment@semiweekly}
+\def\firmac{%
+ \dates@modulo=0%
+ \global\let\dates@init=\dates@init@monthly@dow%
+ \global\let\dates@increment=\dates@increment@monthly@dow}%
+\def\secmac{%
+ \dates@modulo=7%
+ \global\let\dates@init=\dates@init@monthly@dow%
+ \global\let\dates@increment=\dates@increment@monthly@dow}%
+\def\thimac{%
+ \dates@modulo=14%
+ \global\let\dates@init=\dates@init@monthly@dow%
+ \global\let\dates@increment=\dates@increment@monthly@dow}%
+\def\toXmac{\relax%
+ \ifnum\dates@year=0%
+ \dates@subrange@start\dates@lastdate%
+ \else%
+ \dates@fix%
+ \dates@subrange@start\dates@date%
+ \global\dates@month=0%
+ \global\dates@day=0%
+ \setyear{1900}%
+ \fi%
+ \global\let\dates@read@exit\dates@read@exit@range}%
+\def\funmac{%
+ \global\let\dates@read@exit=\dates@read@exit@recurse%
+ \global\let\dates@@@read=\dates@@@read@function}
+\def\remmac{%
+ \global\dates@suppresstrue}
+\bgroup
+ \def\monthdata#1#2#3#4#5\end{%
+ \expandafter\gdef\csname#2#3#4mac\endcsname{%
+ \ifnum\dates@month>0%
+ \dates@montherror%
+ \else%
+ \global\dates@month=#1%
+ \fi}%
+ \ifcat$#5$\let\next\@gobble\else\let\next\monthdata\fi%
+ \next#5\end}%
+ \monthdata1jan2feb3mar4apr5may6jun%
+ 7jul8aug9sep{10}oct{11}nov{12}dec\end
+\egroup
+\bgroup
+ \def\weekdata#1#2#3#4#5\end{%
+ \expandafter\gdef\csname #2#3#4mac\endcsname{%
+ \ifnum\dates@weekd@target<7\relax%
+ \dates@weekerror%
+ \else%
+ \global\dates@weekd@target=#1\relax%
+ \ifx\dates@init\relax%
+ \global\let\dates@init\dates@init@weekly%
+ \fi%
+ \ifx\dates@increment\relax%
+ \global\let\dates@increment\dates@increment@weekly%
+ \fi%
+ \fi}%
+ \ifcat$#5$\let\next\@gobble\else\let\next\weekdata\fi%
+ \next#5\end}
+ \weekdata0sun1mon2tue3wed4thu5fri6sat\end
+\egroup
+\def\dates@montherror{%
+ \PackageError{dates}{Month multiply defined}{%
+ You have set the month more than once here.}}
+\def\dates@dayerror{%
+ \PackageError{dates}{Day multiply defined}{%
+ You have set the day more than once here.}}
+\def\dates@weekerror{%
+ \PackageError{dates}{Week multiply defined}{%
+ You have set the day of the week more than once here.}}
+\def\dates@check@colon#1:#2#{%
+ \def\dates@arg@a{#1}%
+ \def\dates@arg@b{0#2}}
+\def\dates@strip@colon#1:{%
+ \def\dates@arg@b{#1}}
+\def\dates@check@hyphen#1-#2#{%
+ \def\dates@arg@a{#1}%
+ \def\dates@arg@b{0#2}}
+\def\dates@strip@hyphen#1-{%
+ \def\dates@arg@b{#1}}
+\expandafter\expandafter\expandafter\def%
+ \expandafter\csname%
+ \string\relaxXXmac\endcsname{%
+ \global\let\dates@@@@read\relax}
+\def\theyear{\the\dates@year@full}
+\def\themonthnumber{\the\dates@month}
+\def\theday{\the\dates@day}
+\def\thelongdate{\the\dates@date}
+\def\themonthdays{\the\dates@days}
+\def\setyear#1{\dates@year=#1%
+ \advance\dates@year by -1900\calculateyearbase}
+\def\nextyear{\advance\dates@year by1%
+ \calculateyearbase}
+\def\dates@next@month{%
+ \ifnum\dates@month=12%
+ \advance\dates@year by 1\calculateyearbase%
+ \global\dates@month=1%
+ \global\dates@day=1%
+ \else%
+ \global\advance\dates@month by 1%
+ \global\dates@day=1%
+ \fi%
+ \dates@fix}
+\def\settimezone#1{\dates@timezone=#1%
+ \multiply\dates@timezone by 1000%
+ \divide\dates@timezone by24}
+\def\calculateyearbase{%
+ \global\dates@yearbase=-1%
+ {\dates@ct@z=\dates@year\divide\dates@ct@z by4%
+ \multiply\dates@ct@z by4\relax%
+ \ifnum\dates@year=\dates@ct@z%
+ \global\dates@catch=0%
+ \else%
+ \global\dates@catch=1%
+ \fi}%
+ \ifcase\dates@catch \leapyeartrue\or%
+ \leapyearfalse\fi%
+ {\dates@ct@z=\dates@year\multiply\dates@ct@z%
+ by1461\advance\dates@ct@z by3%
+ \divide\dates@ct@z by4%
+ \global\dates@catch=\dates@ct@z}%
+ \global\advance\dates@yearbase by\dates@catch\relax%
+ \ifnum\dates@year=0\global\dates@yearbase=0\leapyearfalse\fi}
+\def\monthdays{%
+\global\dates@catch\ifcase\dates@month%
+ 0\or31\or%
+ 59\or90\or120\or151\or181\or212\or%
+ 243\or273\or304\or334\or365\fi%
+ {\ifleapyear\ifnum\dates@month>1%
+ \global\advance\dates@catch by1\fi\fi}%
+ \global\dates@day@offset=\dates@catch}
+\def\dates@fix{%
+ \dates@year@get%
+ \dates@monthname@get%
+ \ifnum\dates@days<\dates@day%
+ \PackageError{dates}{Day of month out of range}{%
+ There are only \the\dates@days\space days in %
+ \themonth, but you have tried^^J%
+ to specify \the\dates@day.}%
+ \else%
+ \global\dates@date=\dates@day{\advance\dates@month by-1%
+ \monthdays%
+ \global\advance\dates@date by\dates@day@offset%
+ \global\advance\dates@date by\dates@yearbase}%
+ \fi%
+ \dates@dayname@get}
+\def\mod#1#2#3{\dates@three=#2\relax%
+ \dates@four=\dates@three%
+ \divide\dates@three by#1%
+ \multiply\dates@three by#1%
+\advance\dates@four by-\dates@three%
+ #3=\dates@four}
+
+\def\dates@year@get{%
+ \global\dates@year@full\dates@year%
+ \global\advance\dates@year@full by 1900\relax}
+\def\dates@dayname@get{\mod7\dates@date\dates@weekd}
+\def\caldate{\dates@year=\dates@date%
+ \multiply\dates@year by4\divide\dates@year by1461%
+ \calculateyearbase%
+ {\advance\dates@date by-\dates@yearbase\global\dates@month=0%
+ \loop\monthdays\ifnum\dates@day@offset<\dates@date%
+ \global\advance\dates@month by1\repeat%
+ {\advance\dates@month by-1\monthdays%
+ \advance\dates@date by-\dates@day@offset%
+ \global\dates@day=\dates@date}}%
+ \dates@year@get%
+ \dates@monthname@get%
+ \dates@dayname@get}
+\def\dates@monthname@get{%
+ \ifcase\dates@month%
+ \or%
+ \global\dates@days=31\relax%
+ \or%
+ \ifleapyear%
+ \global\dates@days=29\relax%
+ \else%
+ \global\dates@days=28\relax%
+ \fi%
+ \or%
+ \global\dates@days=31\relax%
+ \or%
+ \global\dates@days=30\relax%
+ \or%
+ \global\dates@days=31\relax%
+ \or%
+ \global\dates@days=30\relax%
+ \or%
+ \global\dates@days=31\relax%
+ \or%
+ \global\dates@days=31\relax%
+ \or%
+ \global\dates@days=30\relax%
+ \or%
+ \global\dates@days=31\relax%
+ \or%
+ \global\dates@days=30\relax%
+ \or%
+ \global\dates@days=31\relax%
+ \fi}
+\def\nextday#1{{\dates@ct@z=#1\mod7\dates@date\dates@weekd%
+ \advance\dates@ct@z by-\dates@weekd\relax%
+ \ifnum\dates@ct@z<0\advance\dates@ct@z by7\fi%
+ \global\advance\dates@date by\dates@ct@z}}
+\def\prevday#1{\snextday#1%
+ \global\advance\dates@date by-7}
+\def\snextday#1{\global\advance\dates@date by1%
+ \nextday#1}
+\def\sprevday#1{\global\advance\dates@date by-1%
+ \prevday#1}
+\def\jdttol{\advance\dates@date by500%
+ \advance\dates@date by\dates@timezone%
+ \global\divide\dates@date by1000}
+\def\sintable#1{\ifcase #1 0\or100\or199%
+ \or296\or389\or479\or565\or644\or717%
+ \or783\or841\or891\or932\or964\or985%
+ \or997\or1000\or992\or974\or946\or909%
+ \or863\or808\or746\or675\or598\or516%
+ \or427\or335\or239\or141\or42\or-58%
+ \or-158\fi}
+\def\twopimod{\count2 =\count1%
+ \divide\count2 by6284 \count3 =1853%
+ \count4 =6283\multiply\count3 by\count2%
+ \multiply\count4 by\count2%
+ \divide\count3 by10000%
+ \advance\count3 by\count4%
+ \advance\count1 by-\count3}%
+\def\sin{\relax%
+ \ifnum\count1<0 \signtrue%
+ \count1=-\count1\else \signfalse\fi%
+ \loop\ifnum\count1>6284\twopimod\repeat\relax%
+ \ifnum\count1>3142%
+ \advance\count1 by-3142%
+ \ifsign\signfalse\else\signtrue\fi\fi%
+ \multiply\count1 by10\count3=\count1%
+ \divide\count3 by1000\count2=\count3%
+ \multiply\count3 by1000%
+ \advance\count3 by-\count1 %
+ \count5 =\sintable{\count2 }%
+ \count4 =\count5\advance\count2 by1%
+ \advance\count4 by -\sintable{\count2}%
+ \multiply\count4 by\count3%
+ \divide\count4 by1000%
+ \advance\count4 by\count5%
+ \ifsign\count4 =-\count4\fi}%
+\def\cos{\advance\count1 by-1571%
+ \multiply\count1 by-1\sin}%
+\def\lin#1.#2.#3+#4.{\count1=#3%
+ \count2=#2\count3=#1%
+ \multiply\count1 by\dates@ct@z%
+ \multiply\count2 by\dates@ct@z\relax%
+ \multiply\count3 by\dates@ct@z%
+ \divide\count1 by1000%
+ \advance\count1 by\count2%
+ \divide\count1 by1000%
+ \advance\count1 by\count3%
+ \advance\count1 by #4\relax}
+\def\fac#1{\multiply\count4 by #1%
+ \advance\count6 by\count4}
+\def\id{\count4=\count1} % Identity
+\newcount\dates@textcount
+\newcount\dates@ct@z
+\newcount\dates@range@limit
+\newcount\dates@year
+\newcount\dates@timezone
+\dates@timezone=0
+\newcount\dates@catch
+\newcount\dates@day
+\newcount\dates@day@offset
+\newcount\dates@everymonth@day
+\newcount\dates@everyyear@month
+\newcount\dates@month
+\newcount\dates@date
+\newcount\dates@date@current
+\newcount\dates@three
+\newcount\dates@four
+\newcount\dates@weekd
+\newcount\dates@time@start
+\newcount\dates@time@end
+\newcount\dates@subrange@start
+\newcount\dates@subrange@end
+\newcount\dates@days
+\newcount\dates@lastdate
+\newcount\dates@yearbase
+\newcount\dates@weekd@target
+\newcount\dates@modulo
+\newcount\dates@year@full
+\newcount\dates@extra@day
+\newtoks\dates@reg
+\newtoks\dates@dayname
+\newtoks\dates@shortweekday
+\newtoks\dates@monthname
+\newtoks\dates@shortmonthname
+\newif\ifdates@requiremonth
+\newif\ifdates@requireday
+\newif\ifdates@suppress
+\newif\ifdates@suppress@global
+\newif\ifleapyear
+\let\delim\relax
+\let\dates@serious@brace={
+\def\dates@empty{}
+
+\endinput
+%%
+%% End of file `dates.sty'.