<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">%\iffalse meta comment
%
% This is file `datenumber.dtx',
%
% This file is part of the `datenumber' package,
%
% Copyright (C) 2001 J"org-Michael Schr"oder.
%
% IMPORTANT NOTICE:
%
% This program may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.2
% of this license or (at your option) any later version.
% The latest version of this license is in
% http://www.latex-project.org/lppl.txt
% and version 1.2 or later is part of all distributions of LaTeX
% version 1999/12/01 or later.
%
% This program consists of all files listed in README.txt.
%
% For error reports, or offers to help make this a more powerful
% tool, please contact me on schrj020@mail.uni-mainz.de
%
% 2022/01/27: Corrects small error in datenumberfrench.ldf und in datenumberspanish.ldf (F. P\'etiard)
%
%\fi
%
%\iffalse
%&lt;*datenumber&gt;
\def\fileversion{v0.03}
\def\filedate{2022/01/27}
%&lt;/datenumber&gt;
%&lt;*driver&gt;
\documentclass{ltxdoc}
\EnableCrossrefs
\CodelineIndex
\RecordChanges
\usepackage{german}
\parindent0pt
\begin{document}
\DocInput{datenumber.dtx}
\PrintIndex
\PrintChanges
\end{document}
%&lt;/driver&gt;
%&lt;*datenumber&gt;
%\fi
% \DoNotIndex{\setcounter, \addtocounter, \newcount, \newcounter, \value, \the}
% \DoNotIndex{\@tempcnta, \@tempcntb}
% \DoNotIndex{\day,\month, \year,\relax}
% \DoNotIndex{\ifcase,\or,\else,\fi,\if,\ifdim,\ifnum,\ifx, \loop, \repeat}
% \DoNotIndex{\def,\gdef}
% \DoNotIndex{\advance, \multiply, \divide}
% \DoNotIndex{\csname, \endcsname, \expandafter}
% \DoNotIndex{\ProvidesPackage,\NeedsTeXFormat, \DeclareOption, \ProcessOptions}
% \DoNotIndex{\input, \endinput, \empty, \errmessage}
%
%\title{Das {\tt datenum.sty} Paket \fileversion}
%\author{J\"org-Michael Schr\"oder\\%{\small\texttt{schrj020@mail.uni-mainz.de}}
%}
%\date{\filedate}
%\maketitle
%\MakeShortVerb{\|}

%\section{Der Programmcode}
%\subsection{Am Anfang}
% Identifizierung
%    \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{datenumber}[\filedate \fileversion]
%    \end{macrocode}

% Sprachoptionen deklarieren und entsprechende Dateien laden.
%    \begin{macrocode}
\DeclareOption{english}{\input datenumberenglish.ldf}
\DeclareOption{USenglish}{\input datenumberUSenglish.ldf}
\DeclareOption{french}{\input datenumberfrench.ldf}
\DeclareOption{italian}{\input datenumberitalian.ldf}
\DeclareOption{spanish}{\input datenumberspanish.ldf}
\DeclareOption{german}{\input datenumbergerman.ldf}
\DeclareOption{ngerman}{\input datenumbergerman.ldf}
\input datenumberUSenglish.ldf
\ProcessOptions
%    \end{macrocode}
% Interne ZÃ¤hler
%    \begin{macrocode}
\newcounter{@dayscnt}
\newcounter{@startyear}
%    \end{macrocode}

%\DescribeMacro{\setstartyear}
%Hiermit kann der Start der Nummerierung festgelegt werden. AuÃŸerden werden alle ZÃ¤hler
%(siehe Abschnitt~\ref{defcounter}) Auf den heutigen Tag gesetzt.
%Am Ende der Datei wird diese Makro aufgerufen.
%|@startyear| muÃŸ grÃ¶ÃŸer als 0 sein und
%kleiner als das Jahr eines, zu berechnenden Datums. Je kleiner der Wert ist, desto lÃ¤nger
%dauern die Rechnungen.
%    \begin{macrocode}
\def\setstartyear#1{%
  \ifnum#1&lt;1
    \errmessage{Package datenumber: startyear &lt; 1}%
  \fi
  \setcounter{@startyear}{#1}%
  \setdatetoday
}
%    \end{macrocode}

%\DescribeMacro{\thestartyear}
%Hiermit kann auf einfache Weise der Wert von |@startyear| ausgegeben werden.
%    \begin{macrocode}
\def\thestartyear{\the@startyear}
%    \end{macrocode}

%\subsection{Die grundlegenden Berechnungen}
%\DescribeMacro{\setmydatenumber}
%Berechnung einer laufenden Nummer fÃ¼r ein gegebenes Datum. Der erste Parameter ist der Name
%eines ZÃ¤hlers in dem die Nummer gespeichtert wird. \#2, \#3, \#4 sind die Werte fÃ¼r das Jahr, den Monat und den Tag.
%Es wird getestet, ob das Datum gÃ¼ltig ist, ob |startyear| grÃ¶ÃŸer 1 und ob das Ã¼bergebene
%Jahr nicht kleiner als |startyear| ist. Die Zwischenergebnisse werden in |@dayscnt| gespeichert und zum
%SchluÃŸ in den ZÃ¤hler \#1 geschrieben.
%    \begin{macrocode}
\def\setmydatenumber#1#2#3#4{%
  \ifvaliddate{#2}{#3}{#4}%
  \else
    \errmessage{\@errmessage}%
  \fi
  \ifnum\the@startyear&lt;1
    \errmessage{Package datenumber: startyear &lt; 1}%
  \fi
  \ifnum#2&lt;\the@startyear
    \errmessage{Package datenumber: datenumber &lt; startyear (#2 &lt; \the@startyear)}%
  \fi
  \setcounter{@dayscnt}{0}%
  \ifnum#2&gt;\the@startyear
    \relax\@yearloop{#2}%
  \fi
  \addtocounter{@dayscnt}{%
     \ifcase #3%
        \or 0\or 31\or 59
        \or 90\or 120\or 151
        \or 181\or 212\or 243
        \or 273\or 304\or 334
     \fi
  }%
  \ifleapyear{#2}%
    \ifnum#3&gt;2
      \addtocounter{@dayscnt}{1}%
    \fi
  \fi
  \ifnum#2=1582
    \ifnum#3&gt;10
      \addtocounter{@dayscnt}{-10}%
    \fi
    \ifnum#3=10
      \ifnum#4&gt;14
        \addtocounter{@dayscnt}{-10}%
      \fi
    \fi
  \fi
  \addtocounter{@dayscnt}{#4}%
  \setcounter{#1}{\the@dayscnt}%
}
%    \end{macrocode}

%\DescribeMacro{\setmydatebynumber}
%Berechnung eines Datums aus der laufenden Nummer. Der erste Parameter ist der Wert der Nummer.
%\#2, \#3, \#4 sind die Namen von ZÃ¤hlern in denen das Jahr, der Monat und der Tag gespeichert werden sollen.
%Es wird getestet, ob |startyear| grÃ¶ÃŸer 1 und ob die Ã¼bergebene Nummer grÃ¶ÃŸer 0 ist.
%Die |loop|, |return| Schleife ist nicht unbedingt erforderlich, macht das Ganze aber schneller.
%    \begin{macrocode}
\def\setmydatebynumber#1#2#3#4{%
  \ifnum\the@startyear&lt;1
    \errmessage{Package datenumber: startyear &lt; 1}%
  \fi
  \ifnum#1&lt;1
    \errmessage{Package datenumber: datenumber &lt; 1}%
  \fi
  \setcounter{#2}{\the@startyear}%
  \setcounter{@dayscnt}{1}%
  \loop
    \ifleapyear{\thedateyear}%
      \@tempcnta=366
    \else
      \@tempcnta=365
    \fi
    \ifnum\thedateyear=1582
      \@tempcnta=355
    \fi
    \addtocounter{@dayscnt}{\the\@tempcnta}%
    \ifnum\the@dayscnt&lt;#1\addtocounter{dateyear}{1}%
  \repeat
  \addtocounter{@dayscnt}{-\the\@tempcnta}%
  %
  \setcounter{#3}{1}%
  \setcounter{#4}{1}%
  \setmydatenumber{@dayscnt}{\value{#2}}{\value{#3}}{\value{#4}}%
  \ifnum#1&gt;\the@dayscnt\relax
    \loop
      \mynextdate{#2}{#3}{#4}%
      \addtocounter{@dayscnt}{1}%
      \ifnum\the@dayscnt&lt;#1\relax
    \repeat
    \setmydatenumber{@dayscnt}{\value{#2}}{\value{#3}}{\value{#4}}%
  \fi
}
%    \end{macrocode}

%\DescribeMacro{\mynextdate}
%Berechnung des nÃ¤chsten Datums. Die Parameter \#1, \#2, \#3 sind die Namen von ZÃ¤hlern
%in denen das Jahr, der Monat und der Tag steht und in die das neues Datum geschrieben werden soll.
%Es wird getestet, ob das Datum gÃ¼ltig ist. Auf den 4.10.1582 folgt der 15.10.1582
%(siehe hierzu auch Abschnitt \ref{sonstiges}, Stichwort |\ifleapyear| und |\ifvaliddate|).
%Vielen Dank an David und Heiko fÃ¼r die Anregungen zu diesem Makro
%    \begin{macrocode}
\def\mynextdate#1#2#3{%
  \ifvaliddate{\value{#1}}{\value{#2}}{\value{#3}}%
  \else
    \errmessage{\@errmessage}%
  \fi
  \addtocounter{#3}{1}%
  \ifleapyear{\value{#1}}%
    \@tempcnta=29
  \else
    \@tempcnta=28
  \fi
  \ifnum\value{#3}&gt;%
    \ifcase\value{#2}\or31\or\@tempcnta\or31\or30\or31\or30%
                     \or31\or31\or30\or31\or30\else31%
    \fi\relax
    \setcounter{#3}{1}%
    \addtocounter{#2}{1}%
    \ifnum\value{#2}&gt;12
      \setcounter{#2}{1}%
      \addtocounter{#1}{1}%
    \fi
  \fi
  \ifnum\value{#1}=1582
    \ifnum\value{#2}=10
      \ifnum\value{#3}=5
       \setcounter{#3}{15}%
      \fi
    \fi
  \fi
}
%    \end{macrocode}

%\DescribeMacro{\myprevdate}
%Das gleiche wie eben nur anders herum.
%    \begin{macrocode}
\def\myprevdate#1#2#3{%
  \ifvaliddate{\value{#1}}{\value{#2}}{\value{#3}}%
  \else
    \errmessage{\@errmessage}%
  \fi
  \addtocounter{#3}{-1}%
  \ifleapyear{\value{#1}}%
    \@tempcnta=29
  \else
    \@tempcnta=28
  \fi
  \ifnum\value{#3}=0
    \addtocounter{#2}{-1}%
    \ifnum\value{#2}=0
      \addtocounter{#1}{-1}%
      \setcounter{#2}{12}%
    \fi
    \setcounter{#3}{%
    \ifcase\value{#2}\or 31\or\the\@tempcnta\or 31\or 30\or 31\or 30
                     \or 31\or 31\or 30\or 31\or 30\else 31
    \fi
    }%
  \fi
  \ifnum\value{#1}=1582
    \ifnum\value{#2}=10
      \ifnum\value{#3}=14
        \setcounter{#3}{4}%
      \fi
    \fi
  \fi
}
%    \end{macrocode}

%\subsection{FÃ¼r den Anwender\label{defcounter}}

% Es werden 5 ZÃ¤hler definiert, damit man das nicht jedesmal selbst machen muÃŸ.
%    \begin{macrocode}
\newcounter{datenumber}
\newcounter{dateyear}
\newcounter{datemonth}
\newcounter{dateday}
\newcounter{datedayname}
%    \end{macrocode}
%Dann kommen die gleichen Makros wie eben, nur das diese mit den definierten ZÃ¤hlern arbeiten.
%AuÃŸerdem werden alle ZÃ¤hler aktualisiert und die Kommandos |\datedayname| und |\datemonthname|
%neu definiert (siehe Abschnitt  \ref{month} und \ref{dayname}).

%\DescribeMacro{\setdatenumber}
%Parameter \#1, \#2, \#3: Jahr, Monat und Tag
%    \begin{macrocode}
\def\setdatenumber#1#2#3{%
  \setmydatenumber{datenumber}{#1}{#2}{#3}%
  \setcounter{dateyear}{#1}%
  \setcounter{datemonth}{#2}%
  \setcounter{dateday}{#3}%
  \setdaynamebynumber{\thedatenumber}%
  \setmonthname{\thedatemonth}%
}
%    \end{macrocode}

%\DescribeMacro{\setdatebynumber}
%Parameter: Nummer des Tages
%    \begin{macrocode}
\def\setdatebynumber#1{%
  \setmydatebynumber{#1}{dateyear}{datemonth}{dateday}%
  \setcounter{datenumber}{#1}%
  \setdaynamebynumber{\thedatenumber}%
  \setmonthname{\thedatemonth}%
}
%    \end{macrocode}

%\DescribeMacro{\nextdate}
%    \begin{macrocode}
\def\nextdate{%
 \mynextdate{dateyear}{datemonth}{dateday}%
 \setdate{\thedateyear}{\thedatemonth}{\thedateday}%
}
%    \end{macrocode}

%\DescribeMacro{\prevdate}
%    \begin{macrocode}
\def\prevdate{%
 \myprevdate{dateyear}{datemonth}{dateday}%
 \setdate{\thedateyear}{\thedatemonth}{\thedateday}%
}
%    \end{macrocode}
% Jetzt noch ein paar Makros, die das Leben einfacher machen.

%\DescribeMacro{\setdate}
%FÃ¼r intuitivere Schreibweise
%    \begin{macrocode}
\def\setdate#1#2#3{%#1 year, #2 month, #3 day
  \setdatenumber{#1}{#2}{#3}%
}
%    \end{macrocode}

%\DescribeMacro{\setdatetoday}
%Setzt alles auf Heute
%    \begin{macrocode}
\def\setdatetoday{%
  \setdatenumber{\the\year}{\the\month}{\the\day}%
}
%    \end{macrocode}

%\subsection{Monat\label{month}}

%\DescribeMacro{\setmonthname}
%Definiert |\datemonthname| entsprechend des Ã¼bergebenen Wertes (1--12, Januar--Dezember).
%Wird von den Makros in Abschnitt \ref{defcounter} aufgerufen.
%Das Makro |\@monthname| wird in den |.ldf|-Dateien definiert.
%    \begin{macrocode}
\def\setmonthname#1{%
  \def\datemonthname{\@monthname{#1}}%
}
%    \end{macrocode}

%\subsection{Wochentag\label{dayname}}

%\DescribeMacro{\setdayname}
%Definiert |\datedayname| entsprechend des Ã¼bergebenen Wertes (1--7, Montag--Sonntag).
%Das Makro |\@dayname| wird in den |.ldf|-Dateien definiert.
%    \begin{macrocode}
\def\setdayname#1{%
  \def\datedayname{\@dayname{#1}}%
}
%    \end{macrocode}

%\DescribeMacro{\setdaynamebynumber}
%Berechnung des Wochentages aus der Nummer des Tages und Aktualisierung
%von |\datedayname|. Funktioniert, wenn
%|startyear| auf 1800, 1900 oder 2000 gesetzt ist oder aus Zufall.
%Wird von den Makros in Abschnitt \ref{defcounter} aufgerufen.
%    \begin{macrocode}
\def\setdaynamebynumber#1{%
  \@tempcnta=#1\relax
  \ifnum\the@startyear=1800\advance \@tempcnta by 1\fi
  \ifnum\the@startyear=1900\advance \@tempcnta by 6\fi
  \ifnum\the@startyear=2000\advance \@tempcnta by 4\fi
  \@modulo{\the\@tempcnta}{7}%
  \setcounter{datedayname}{\the\@den}%
  \addtocounter{datedayname}{1}%
  \setdayname{\thedatedayname}%
}
%    \end{macrocode}

%\subsection{Sonstiges\label{sonstiges}}
%\DescribeMacro{\datedate}
%Gibt das Datum aus, das in den StandardzÃ¤hlern steht (siehe Abschnitt\ref{defcounter}).
%Das Makro |\@datedate| wird in den |.ldf|-Dateien definiert.
%    \begin{macrocode}
\def\datedate{\@datedate}%
%    \end{macrocode}


%\subsection{Sonstiges\label{sonstiges}}
%\DescribeMacro{\dateselectlanguage}
%Umschalten der Sprache. Das Makro |\@datelanguage#1| wird in den |.ldf|-Dateien definiert.
%    \begin{macrocode}
\def\dateselectlanguage#1{%
  \csname @datelanguage#1\endcsname
  \setdayname{\thedatedayname}%
  \setmonthname{\thedatemonth}%
}
%    \end{macrocode}

%\DescribeMacro{\ifleapyear}
%Schaltjahrtest (\#1 Jahr). Nach dem Julianischen Kalender ist jedes Jahr ein Schaltjahr, das ein ganzahliges
%Vielfaches von 4 ist. Der Gregorianischer Kalender wurde 1582 eingefÃ¼hrt, aber nicht von
%allen (Christen) Ã¼bernommen. Dieses Paket Ã¼bernimmt ihn ab 1582. D.h., ab 1582 ist ein Jahr, daÃŸ
%ein ganzzahlige Vielfaches von 100 ist nur dann ein Schaltjahr, wenn es auch
%ein ganzzahlige Vielfaches von 400 ist.
%    \begin{macrocode}
\def\ifleapyear#1{%#1 year
  \ifnum#1&gt;1500
    \@modulo{#1}{100}%
    \ifnum\@den=0
      \@modulo{#1}{400}%
    \else
      \@modulo{#1}{4}%
    \fi
  \else
    \@modulo{#1}{4}%
  \fi
  \ifnum\@den=0
}
%    \end{macrocode}

%\DescribeMacro{\ifvaliddate}
%Testet auf gÃ¼ltige Datum (\#1, \#2, \#3: Jahr, Monat, Tag).
%Eine Fehlermeldung wird in |\@errmessage| geschrieben, wenn das Datum ungÃ¼ltig ist.
%Im Jahr 1582 folgte nach der Gregorianischer Kalenderreform auf den 4.10 der 15.10.
%Er hat uns also 10 Tage geklaut.
%    \begin{macrocode}
\def\ifvaliddate#1#2#3{%
  \ifleapyear{#1}%
    \@tempcnta=29
  \else
    \@tempcnta=28
  \fi
  \gdef\@errmessage{}%
  \ifnum#1&lt;1
    \gdef\@errmessage{Package datenumber: %
                      invalid date: year &lt; 1, #1/#2/#3}%
  \fi%
  \ifnum#2&lt;1
    \gdef\@errmessage{Package datenumber: %
                      invalid date: month &lt; 1, #1/#2/#3}%
  \fi%
  \ifnum#2&gt;12
    \gdef\@errmessage{Package datenumber: %
                      invalid date: month &gt; 12, #1/#2/#3}%
  \fi%
  \ifnum#3&lt;1
    \gdef\@errmessage{Package datenumber: %
                      invalid date: day &lt; 1, #1/#2/#3}%
  \fi%
  \@tempcntb=
  \ifcase#2 31\or 31\or\the\@tempcnta\or 31\or 30\or 31\or 30
                     \or 31\or 31\or 30\or 31\or 30\else 31
  \fi\relax
  \ifnum#3&gt;\@tempcntb
    \gdef\@errmessage{Package datenumber: %
                      invalid date: day &gt; \the\@tempcntb, #1/#2/#3}%
  \fi%
  \ifnum#1=1582
    \ifnum#2=10
      \ifnum#3&gt;4
        \ifnum#3&lt;15
          \gdef\@errmessage{Package datenumber: %
                            invalid date: #1/#2/#3}%
        \fi
      \fi
    \fi
  \fi
  \ifx\@errmessage\empty
}
%    \end{macrocode}

%\subsection{Interna}
%\DescribeMacro{\@yearloop}
%Berechnet die Anzahl der Tage vom Startjahr bis zum Jahr \#1.
%    \begin{macrocode}
\def\@yearloop#1{%
  \@tempcnta=\the@startyear%
  \loop
    \ifleapyear{\@tempcnta}%
      \addtocounter{@dayscnt}{366}%
    \else
      \addtocounter{@dayscnt}{365}%
    \fi
    \ifnum\@tempcnta=1582
      \addtocounter{@dayscnt}{-10}%
    \fi
    \advance \@tempcnta by 1
    \ifnum\@tempcnta=#1\else
  \repeat
}
%    \end{macrocode}

% Die brauchen wir gleich
%    \begin{macrocode}
\newcount\@nom\newcount\@den
%    \end{macrocode}

%\DescribeMacro{\@modulo}
%Berechnet \#1 modulo \#2 und speichert das Ergebnis in |\@den|
%Vielen Dank an Christian fÃ¼r dieses Makro und an Heiko fÃ¼r die
%Verbesserungen
%    \begin{macrocode}
\def\@modulo#1#2{%
  \@nom=#1\relax
  \@den=#2\relax
  \divide\@nom by \@den%
  \multiply\@nom by \@den%
  \@den=#1%
  \advance\@den by -\@nom%
}
%    \end{macrocode}

%\subsection{Zum SchluÃŸ}
%Zum SchluÃŸ setzen wir noch das Startjahr, was gleichzeitig
%alle ZÃ¤hler auf das heutige Datum setzt.
%    \begin{macrocode}
\setstartyear{1800}
%    \end{macrocode}
%\iffalse
%&lt;/datenumber&gt;
%&lt;*english&gt;

\ProvidesFile{datenumberenglish.ldf}

\def\@datelanguageenglish{%
  \def\@dayname{\@daynameenglish}
  \def\@monthname{\@monthnameenglish}%
  \def\@datedate{\@datedateenglish}%
}

\def\@monthnameenglish#1{%
  \ifcase#1\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}%

\def\@daynameenglish#1{%
  \ifcase#1\or
    Monday\or Tuesday\or Wednesday\or Thursday\or
    Friday\or Saturday\or Sunday\fi}

\def\@datedateenglish{\thedateday \ifcase\thedateday \or
  st\or nd\or rd\or th\or th\or th\or th\or th\or th\or th\or
  th\or th\or th\or th\or th\or th\or th\or th\or th\or th\or
  st\or nd\or rd\or th\or th\or th\or th\or th\or th\or th\or
  st\fi~\datemonthname \space\thedateyear}

\@datelanguageenglish
%&lt;/english&gt;
%&lt;*USenglish&gt;

\ProvidesFile{datenumberUSenglish.ldf}

\def\@datelanguageUSenglish{%
  \def\@dayname{\@daynameUSenglish}
  \def\@monthname{\@monthnameUSenglish}%
  \def\@datedate{\@datedateUSenglish}%
}

\def\@monthnameUSenglish#1{%
  \ifcase#1\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}%

\def\@daynameUSenglish#1{%
  \ifcase#1\or
    Monday\or Tuesday\or Wednesday\or Thursday\or
    Friday\or Saturday\or Sunday\fi}

\def\@datedateUSenglish{\datemonthname\space\thedateday, \thedateyear}

\@datelanguageUSenglish
%&lt;/USenglish&gt;
%&lt;*french&gt;

\ProvidesFile{datenumberfrench.ldf}

\def\@datelanguagefrench{%
  \def\@dayname{\@daynamefrench}
  \def\@monthname{\@monthnamefrench}%
  \def\@datedate{\@datedatefrench}%
}

\def\@monthnamefrench#1{%
  \ifcase#1\or
    janvier\or f\'evrier\or mars\or avril\or mai\or juin\or
    juillet\or ao\^ut\or septembre\or octobre\or novembre\or d\'ecembre\fi}%

\def\@daynamefrench#1{%
  \ifcase#1\or
    Lundi\or Mardi\or Mercredi\or Jeudi\or
    Vendredi\or Samedi\or Dimanche\fi}

\def\@datedatefrench{\thedateday \ifnum1=\thedateday \/$^{\rm er}$\fi
    \space \datemonthname\space\thedateyear}

\@datelanguagefrench
%&lt;/french&gt;
%&lt;*spanish&gt;

\ProvidesFile{datenumberspanish.ldf}

\def\@datelanguagespanish{%
  \def\@dayname{\@daynamespanish}
  \def\@monthname{\@monthnamespanish}%
  \def\@datedate{\@datedatespanish}%
}

\def\@monthnamespanish#1{%
  \ifcase#1\or
    enero\or febrero\or marzo\or abril\or mayo\or junio\or
    julio\or agosto\or septiembre\or octubre\or noviembre\or diciembre\fi}%

\def\@daynamespanish#1{%
  \ifcase#1\or
    Lunes\or Martes\or Mi\'ercoles\or Jueves\or
    Viernes\or S\'abado\or Domingo\fi}

\def\@datedatespanish{\thedateday~de \datemonthname\ de~\thedateyear}

\@datelanguagespanish

%&lt;/spanish&gt;
%&lt;*german&gt;

\ProvidesFile{datenumbergerman.ldf}

\def\@datelanguagegerman{%
  \def\@dayname{\@daynamegerman}%
  \def\@monthname{\@monthnamegerman}%
  \def\@datedate{\@datedategerman}%
}

\def\@monthnamegerman#1{%
  \ifcase#1\or
    Januar\or Februar\or M\"arz\or April\or Mai\or Juni\or
    Juli\or August\or September\or Oktober\or November\or Dezember\fi}%

\def\@daynamegerman#1{%
  \ifcase#1\or
    Montag\or Dienstag\or Mittwoch\or Donnerstag\or
    Freitag\or Samstag\or Sonntag\fi}

\def\@datedategerman{\thedateday.~\datemonthname\space\thedateyear}

\@datelanguagegerman
%&lt;/german&gt;
%&lt;*dummy&gt;

\ProvidesFile{datenumberdummy.ldf}

\makeatletter

\def\@datelanguagedummy{%
  \def\@dayname{\@daynamedummy}
  \def\@monthname{\@monthnamedummy}%
  \def\@datedate{\@datedatedummy}%
}

\def\@monthnamedummy#1{%
  \ifcase#1\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}%

\def\@daynamedummy#1{%
  \ifcase#1\or
    Monday\or Tuesday\or Wednesday\or Thursday\or
    Friday\or Saturday\or Sunday\fi}

\def\@datedatedummy{\datemonthname\space\thedateday, \thedateyear}

\@datelanguagedummy

\makeatother
%&lt;/dummy&gt;

%\fi
%\Finale
\endinput
%\def{\fileversion}{v0.03}\def{\filedate}{2022/01/27}
</pre></body></html>