summaryrefslogtreecommitdiff
path: root/macros/generic/misc/weekday.sty
blob: cda185ad31bb9a6150df653a374bc111302518e4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
% Save file as: WEEKDAY.STY            Source: FILESERV@SHSU.BITNET  
%% WEEKDAY.STY -- original source: Dimitri Vulis <DLV@CUNYVMS1.BITNET> with
%%  modifications by George D. Greenwade <BED_GDG@SHSU.BITNET>, and gracious
%%  assistance from Bernhard Schroeder <UPK002@DBNRHRZ1.BITNET>, Hunter
%%  Goatley <GOATHUNTER@WKUVX1.BITNET>, and others via INFO-TeX/comp.text.tex.
%%  21-FEB-1991 17:42:37
%% 
%% Usage: \weekday{yyyy}{mm}{dd} (where "yyyy" is a year, "mm" is the numeric
%%        equilavent of the month, and "dd" is the specific calendar date
%%        which may be one or two numbers) yields the weekday associated with
%%        the date provided (i.e., Sunday, Monday, ...).  May pass \year,
%%        \month, and \day to generate today's weekday.
%% 
%%    --  \weekdaydate{yyyy}{mm}{dd} yields result of \weekday, as well as the
%%        calendar date (i.e., \weekdaydate{1991}{02}{21} yields Thursday,
%%        February 21, 1991).  (NOTE: syntax is changed from \weekdaydisplay
%%        to \weekdaydate to make it a little more rememberable)
%%
%% May be used as a TeX macro or as a LaTeX style, from what I can tell.
%% Please report any enhancements or bugs you come across so they can be
%%    posted in FILESERV's STYle archives.  George <BED_GDG@SHSU.BITNET>
%%
\newcount\wwwy
\newcount\wwwm
\newcount\wwwd
\newcount\wwwc
\newcount\wwwt
\newcount\wwws

\def\weekday@{%
\wwwc=\wwwy
\divide\wwwc100\relax
\wwwt=-\wwwc
\multiply\wwwt100\relax
\advance\wwwy\wwwt
\wwws=\wwwy
\multiply\wwws1461\relax
\divide\wwws4\relax
\wwwt=\wwwm
\multiply\wwwt764\relax
\divide\wwwt25\relax
\advance\wwws\wwwt
\advance\wwws\wwwd
\ifnum\wwwm>\tw@\advance\wwws\thr@@\else\weekday@@\fi
\wwwt=-\wwws
\divide\wwwt7\relax
\multiply\wwwt7\relax
\advance\wwws\wwwt
}

% By the year 2000 we ought to examine \wwwc as well

\def\weekday@@{%
\wwwt=\wwwy
\divide\wwwt4\relax
\multiply\wwwt4\relax
\advance\wwwt-\wwwy
\ifnum\wwwt=\z@\advance\wwws4\else\advance\wwws5\fi
}

\def\weekday#1#2#3{% year, month 1--12, day 1--31
\wwwy=#1\relax\wwwm=#2\relax\wwwd=#3\relax \weekday@
\ifcase\wwws Sunday\or
 Monday\or Tuesday\or Wednesday\or Thursday\or Friday\or Saturday\fi}

\def\weekdaydate#1#2#3{% year, month 1--12, day 1--31
\wwwy=#1\relax\wwwm=#2\relax\wwwd=#3\relax\weekday@
\ifcase\wwws Sunday,\or
Monday,\or Tuesday,\or Wednesday,\or Thursday,\or Friday,\or Saturday,\fi
\space
\ifcase #2\or
 January\or February\or March\or April\or May\or June\or
 July\or August\or September\or October\or November\or December\fi
\space\number#3, \space\number#1}  % Here I (Bernhard) inserted \number