%%
%% This is file `docgerman.tex'.
%% generated with the docstrip utility.
%%
%% 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)
%%

\documentclass[a4paper,draft]{article}
\usepackage[german]{datenumber}
\usepackage{german}
\oddsidemargin 0.25in
\textwidth 5.875 in
\addtolength{\textheight}{7\baselineskip}
\addtolength{\topmargin}{-5\baselineskip}

\title{Das {\tt datenum.sty} Paket \fileversion}
\author{J"org-Michael Schr"oder\\%{\small\texttt{schrj020@mail.uni-mainz.de}}
}
\date{\filedate\footnote{Das ursprüngliche Datum war 2001/08/06 (version 0.02). Diese Version behebt einen kleinen Fehler in datenumberfrench.ldf und in datenumberspanish.ldf.}}

\newcounter{dateone}\newcounter{datetwo}%
\newcommand{\daydifftoday}[3]{%
  \setmydatenumber{dateone}{\the\year}{\the\month}{\the\day}%
  \setmydatenumber{datetwo}{#1}{#2}{#3}%
  \addtocounter{datetwo}{-\thedateone}%
  \thedatetwo
}

\newcommand{\sd}{%
\ifcase\thedatedayname \or
    Mo.\or Di.\or Mi.\or Do.\or
    Fr.\or Sa.\or So.\fi
}%

\newcommand{\pnext}{%
\ifnum\value{dateday}<10 0\fi
\thedateday.%
\ifnum\value{datemonth}<10 0\fi
\thedatemonth.\thedateyear
\nextdate
}

\begin{document}
\maketitle
\begin{abstract}
Dieses Paket stellt Kommandos zur Verf"ugung, mit denen sich ein Datum in eine nat"urliche Zahl umwandeln l"a"st. Umgekehrt kann auch aus einer Zahl ein Datum errechnet werden. Au"serdem gibt es Kommandos zur Inkrementierung und Dekrementierung eines Datums. Schaltjahre und die Gregorianische Kalenderreform werden ber"ucksichtigt.
\end{abstract}

\tableofcontents
\section{Startjahr}
Der Start der Z"ahlung wird mit \verb+\setstartyear{year}+ festgelegt (Standard 1800).
Der 01.01. des Startjahres bekommt die Nummer 1. Der Wert von \texttt{startyear} mu"s mindestens 1 sein darf aber nicht gr"o"ser sein als das Jahr eines Datums f"ur das eine Nummer berechnet werden soll. Je gr"o"ser die Differenz von Datum und Startjahr ist, desto l"anger dauern die Berechnungen. Die richtige Berechnung der Wochentage ist nur garantiert, wenn  \texttt{startyear} auf 1800, 1900 oder 2000 gesetzt ist. Ausgegeben wird das Jahr mit \verb+\thestartyear+.
\section{Z"ahler}
Es werden f"unf Z"ahler definiert
\begin{description}
\item[\texttt{datenumber}:] Nummer des Tages
\item[\texttt{dateyear}:] Jahr
\item[\texttt{datemonth}:] Monat
\item[\texttt{dateday}:] Tag
\item[\texttt{datedayname}:] Wochentag: 1--7 entspricht Montag--Sonntag
\end{description}
Diese Z"ahler werden von den meisten Makros verwendet. Es gibt aber auch Makros denen eigene Z"ahler "ubergeben werden k"onnen.
\section{Makros}
\subsection{Makros mit Standardz"ahlern\label{macro}}
Bei diesen Makros werden alle oben genannten Z"ahler, der Wochentag und der Monatsname aktualisiert.

\begin{description}
\item[{\mdseries\textbackslash}\texttt{setdatenumber}\{\texttt{year}\}\{\texttt{month}\}\{\texttt{day}\}:] Setzt den Z"ahler \texttt{datenumber} auf den Wert, der dem Datum entspricht.
\item[{\mdseries\textbackslash}\texttt{setdatebynumber}\{\texttt{number}\}:] Setzt die Z"ahler \texttt{dateyear}, \texttt{datemonth} und \texttt{dateday} auf die Werte, die der Nummer entsprechen.
\item[{\mdseries\textbackslash}\texttt{nextdate}:] Setzt die Z"ahler \texttt{dateyear}, \texttt{datemonth} und \texttt{dateday} auf das n"achste Datum.
\item[{\mdseries\textbackslash}\texttt{prevdate}:] Setzt die Z"ahler \texttt{dateyear}, \texttt{datemonth} und \texttt{dateday} auf das vorherige Datum.
\item[{\mdseries\textbackslash}\texttt{setdate}\{\texttt{year}\}\{\texttt{month}\}\{\texttt{day}\}:] Setzt die Z"ahler \texttt{dateyear}, \texttt{datemonth} und \texttt{dateday} auf die "ubergebenen Werte.
\item[{\mdseries\textbackslash}\texttt{setdatetoday}:] Setzt die Z"ahler \texttt{dateyear}, \texttt{datemonth} und \texttt{dateday} auf das aktuelle Datum.
\item[{\mdseries\textbackslash}\texttt{datemonthname}:] Gibt den Namen des Monats aus (Siehe Abschnitt \ref{monthname}).
\item[{\mdseries\textbackslash}\texttt{datedayname}:] Gibt den Namen des Wochentages aus (Siehe Abschnitt \ref{dayname}).
\item[{\mdseries\textbackslash}\texttt{datedate}:] Gibt das Datum aus, da"s den Z"ahlern \texttt{dateyear}, \texttt{datemonth} und \texttt{dateday} entspricht.
\end{description}
\subsection{Makros mit eigenen Z"ahlern}
Bei diesen Makros werden weder die oben genannten Z"ahler ge"andert (es sei denn, ihre Namen werden hier "ubergeben), noch werden der Wochentag und der Monatsname aktualisiert.
\begin{description}\sloppypar
\item[{\mdseries\textbackslash}\texttt{setmydatenumber}\{\texttt{numbercount}\}\{\texttt{year}\}\{\texttt{month}\}\{\texttt{day}\}:] Setzt den Z"ahler \texttt{numbercount} auf den Wert, der dem Datum entspricht.
\item[{\mdseries\textbackslash}\texttt{setmydatebynumber}\{\texttt{number}\}\{\texttt{yearcount}\}\{\texttt{monthcount}\}\{\texttt{daycount}\}:] Setzt die Z"ahler\\ \texttt{yearcount}, \texttt{monthcount} und \texttt{daycount} auf die Werte, die der Nummer entsprechen.
\item[{\mdseries\textbackslash}\texttt{mynextdate}\{\texttt{yearcount}\}\{\texttt{monthcount}\}\{\texttt{daycount}\}:] Setzt die Z"ahler \texttt{yearcount}, \texttt{monthcount} und \texttt{daycount} auf das n"achste Datum.
\item[{\mdseries\textbackslash}\texttt{mynextdate}\{\texttt{yearcount}\}\{\texttt{monthcount}\}\{\texttt{daycount}\}:] Setzt die Z"ahler \texttt{yearcount}, \texttt{monthcount} und \texttt{daycount} auf das vorherige Datum.
\end{description}

\subsection{Monatsname\label{monthname}}
Der Monatsname wird von den  Makros aus Abschnitt \ref{macro} mit dem Aufruf \verb+\setmonthname{number}+ aktualisiert. Der Name steht mit \verb+\datemonthname+ zur Verf"ugung.

\subsection{Wochentag\label{dayname}}
Makros aus Abschnitt \ref{macro} definieren das Kommando \verb+\datedayname+ entsprechend dem Datum. Man kann mit \verb+\setdayname{number}+ den Wochentag auch explizit setzen, wobei 1 Montag und 7 Sonntag entspricht. Auch mit der laufenden Nummer eines Tages l"a"st sich der Wochentag setzen: \verb+\setdaynamebynumber{number}+. Das Ganze funktioniert richtig, wenn \texttt{startyear} auf 1800, 1900 oder 2000 gesetzt ist.

\section{Sprachunterst"utzung}\sloppypar
Bisher werden die Sprachenoptionen  \texttt{english}, \texttt{USenglish} (Standard),
\texttt{french}, \texttt{spanish}, \texttt{german} und  \texttt{ngerman} unterst"utzt.\\
Um eine Sprache auszuw"ahlen, schreibe \verb+\dateselectlanguage{language}+.
F"ur andere Sprachen: Erstelle eine Datei \texttt{datenumbermylanguage.ldf}.
Kopiere den Inhalt von \texttt{datenumberdummy.ldf}. Ersetzte jedes Vorkommen von
"`dummy"'  durch "`mylanguage"' und "andere die Namen f"ur Monat und Wochentag.
Nach \verb+\usepackage{datenumber}+ f"uge \verb+\input{datenumbermylanguage.ldf}+
in das Dokument ein.

\section{Beispiele}
\begin{quote}
\begin{verbatim}
\setdate{2002}{1}{1}%
\thedatenumber
\end{verbatim}
\setdate{2002}{1}{1}%
Ergebnis: \thedatenumber
\end{quote}\vspace{\baselineskip}

\begin{quote}
\begin{verbatim}
\setdatetoday
\addtocounter{datenumber}{10}%
\setdatebynumber{\thedatenumber}%
In 10 Tagen ist der \datedate
\end{verbatim}
\setdatetoday
\addtocounter{datenumber}{10}%
\setdatebynumber{\thedatenumber}%
Ergebnis: In 10 Tagen ist der \datedate
\end{quote}\vspace{\baselineskip}

\begin{quote}
\begin{verbatim}
\newcounter{dateone}\newcounter{datetwo}%

\newcommand{\daydifftoday}[3]{%
  \setmydatenumber{dateone}{\the\year}{\the\month}{\the\day}%
  \setmydatenumber{datetwo}{#1}{#2}{#3}%
  \addtocounter{datetwo}{-\thedateone}%
  \thedatetwo
}

Bis Weinachten sind es noch \daydifftoday{\the\year}{12}{25} Tage.
\end{verbatim}
Ergebnis: Bis Weinachten sind es noch \daydifftoday{\the\year}{12}{25} Tage.
\end{quote}\vspace{\baselineskip}

\clearpage
\begin{quote}
\begin{verbatim}
\newcommand{\sd}{%
\ifcase\thedatedayname \or
    Mo.\or Di.\or Mi.\or Do.\or
    Fr.\or Sa.\or So.\fi
}%

\newcommand{\pnext}{%
\ifnum\value{dateday}<10 0\fi
\thedateday.%
\ifnum\value{datemonth}<10 0\fi
\thedatemonth.\thedateyear
\nextdate
}

\setdate{2001}{9}{29}%
\[\begin{tabular}{lll}
\sd & \pnext & Abc\\
\sd & \pnext & Def\\
\sd & \pnext & Ghi\\
\sd & \pnext & Jkl\\
\end{tabular}\]
\end{verbatim}
Ergebnis: \setdate{2001}{9}{29}%
\[\begin{tabular}{lll}
\sd & \pnext & Abc\\
\sd & \pnext & Def\\
\sd & \pnext & Ghi\\
\sd & \pnext & Jkl\\
\end{tabular}\]
\end{quote}

\section{Sonstiges}
\begin{itemize}
\item Test auf Schaltjahr
\begin{quote}
\begin{verbatim}
Das Jahr \the\year\ ist
\ifleapyear{\the\year} ein \else kein \fi Schaltjahr.
\end{verbatim}
Ergebnis:  Das Jahr \the\year\ ist \ifleapyear{\the\year} ein \else kein \fi Schaltjahr.
\end{quote}
\item Test auf g"ultiges Datum
\begin{quote}
\begin{verbatim}
Das Datum 29.2.1900 ist
\ifvaliddate{1900}{2}{29} g"ultig\else nicht g"ultig\fi.
\end{verbatim}
Ergebnis: Das Datum 29.2.1900 ist \ifvaliddate{1900}{2}{29} g"ultig\else nicht g"ultig\fi.%
\footnote{Es gibt einige Programme, die dazu eine andere Meinung haben. F"ur mehr Information "uber Schaltjahre und den 5. Oktober 1582 suche nach "`Gregorian calendar"'.}
\end{quote}
\end{itemize}
\end{document}
\endinput
%%
%% End of file `docgerman.tex'.
