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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
|
%%
%% 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
%%
\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}
\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[\texttt{\textbackslash setdatenumber\{year\}\{month\}\{day\}}:] Setzt den Z"ahler \texttt{datenumber} auf den Wert, der dem Datum entspricht.
\item[\texttt{\textbackslash setdatebynumber\{number\}}:] Setzt die Z"ahler \texttt{dateyear}, \texttt{datemonth} und \texttt{dateday} auf die Werte, die der Nummer entsprechen.
\item[\texttt{\textbackslash nextdate}:] Setzt die Z"ahler \texttt{dateyear}, \texttt{datemonth} und \texttt{dateday} auf das n"achste Datum.
\item[\texttt{\textbackslash prevdate}:] Setzt die Z"ahler \texttt{dateyear}, \texttt{datemonth} und \texttt{dateday} auf das vorherige Datum.
\item[\texttt{\textbackslash setdate\{year\}\{month\}\{day\}}:] Setzt die Z"ahler \texttt{dateyear}, \texttt{datemonth} und \texttt{dateday} auf die "ubergebenen Werte.
\item[\texttt{\textbackslash setdatetoday}:] Setzt die Z"ahler \texttt{dateyear}, \texttt{datemonth} und \texttt{dateday} auf das aktuelle Datum.
\item[\texttt{\textbackslash datemonthname}:] Gibt den Namen des Monats aus (Siehe Abschnitt \ref{monthname}).
\item[\texttt{\textbackslash datedayname}:] Gibt den Namen des Wochentages aus (Siehe Abschnitt \ref{dayname}).
\item[\texttt{\textbackslash 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[\texttt{\textbackslash setmydatenumber\{numbercount\}\{year\}\{month\}\{day\}}:] Setzt den Z"ahler \texttt{numbercount} auf den Wert, der dem Datum entspricht.
\item[\texttt{\textbackslash setmydatebynumber\{number\}\{yearcount\}\{monthcount\}\{daycount\}}:] Setzt die Z"ahler \texttt{yearcount}, \texttt{monthcount} und \texttt{daycount} auf die Werte, die der Nummer entsprechen.
\item[\texttt{\textbackslash mynextdate\{yearcount\}\{monthcount\}\{daycount\}}:] Setzt die Z"ahler \texttt{yearcount}, \texttt{monthcount} und \texttt{daycount} auf das n"achste Datum.
\item[\texttt{\textbackslash mynextdate\{yearcount\}\{monthcount\}\{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'.
|