%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%    Wochentag zu einem Datum ermitteln %
%    von Andreas Schrell                %
%        Windhoevel 2                   %
%        5600 Wuppertal 2               %
%        Tel. 0202/666889               %
%    E-Mail: ma107 at dhafeu11.bitnet   %
%    Version 1.0 vom 9.10.1991          %
%                                       %
% Aufruf:                               %
% \Wochentag dd.mm.jjjj.                %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

{\catcode`\@=11
\newcount\@tag
\newcount\@monat
\newcount\@jahr
\newcount\@ja
\newcount\@jb
\newcount\@ha
\newcount\@hb
\newcount\@hc
\newcount\@b
\newcount\@f
\gdef\Wochentag #1.#2.#3.{\@tag=#1\@monat=#2\@jahr=#3
\ifnum\@jahr<100\advance\@jahr by 1900\else\fi
\ifnum\@monat<3                         % if monat<3
 \advance\@monat by 10                  %   monat:=monat+10
 \advance\@jahr by -1                   %   jahr:=jahr-1
\else                                   % else
 \advance\@monat by -2                  %   monat:=monat-2
\fi                                     % fi
\@ja=\@jahr\divide\@ja by 100           % ja:=jahr/100
\@jb=-\@ja\multiply\@jb by 100
\advance \@jb by \@jahr                 % jb:=jahr-ja*100
\@ha=\@monat\multiply\@ha by 13         
\advance\@ha by -1                      % ha:=13*monat-1
\divide\@ha by 5                        % ha:=ha/5
\@hb=\@jb\divide\@hb by 4               % hb:=jb/4
\@hc=\@ja\divide\@hc by 4               % hc:=ja/4
\@b=\@ha\advance\@b by \@hb
\advance\@b by \@hc                     % b:=ha+hb+hc
\@f=\@b\advance\@f by \@jb
\advance\@f by \@tag                    % f:=b+jb+tag
\multiply \@ja by 2
\advance\@f by -\@ja                    % f:=f-2*ja
\@ha=\@f
\divide\@ha by 7
\multiply\@ha by 7
\advance\@f by -\@ha                    % f:= f mod 7
\ifcase\@f Sonntag\or Montag\or Dienstag\or Mittwoch\or Donnerstag\or
           Freitag\or Samstag\else ????????\fi}
}

