summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/koma-script/scrdate.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/koma-script/scrdate.sty')
-rw-r--r--Master/texmf-dist/tex/latex/koma-script/scrdate.sty181
1 files changed, 113 insertions, 68 deletions
diff --git a/Master/texmf-dist/tex/latex/koma-script/scrdate.sty b/Master/texmf-dist/tex/latex/koma-script/scrdate.sty
index d7d4b14bb16..7fc36527f27 100644
--- a/Master/texmf-dist/tex/latex/koma-script/scrdate.sty
+++ b/Master/texmf-dist/tex/latex/koma-script/scrdate.sty
@@ -4,7 +4,11 @@
%%
%% The original source files were:
%%
-%% scrtime.dtx (with options: `scrdate')
+%% scrkvers.dtx (with options: `package,scrdate')
+%% scrtime.dtx (with options: `package,scrdate,identify')
+%% scrkbase.dtx (with options: `load')
+%% scrtime.dtx (with options: `package,scrdate,option')
+%% scrtime.dtx (with options: `package,scrdate,body')
%% scrlogo.dtx (with options: `logo')
%%
%% Copyright (c) 1994-2010
@@ -40,73 +44,116 @@
%% find a complete unmodified copy of LaTeX2e at
%% <http://www.ctan.org/pub/tex-archive/macros/latex/base/>.
%%
+%%% From File: scrkvers.dtx
+\begingroup
+ \makeatletter
+ \ifx\KOMAScriptVersion\undefined
+ \newcommand*{\@CheckKOMAScriptVersion}[1]{%
+ \gdef\KOMAScriptVersion{#1}%
+ }%
+ \else
+ \newcommand*{\@CheckKOMAScriptVersion}[1]{%
+ \def\@tempa{#1}%
+ \ifx\KOMAScriptVersion\@tempa\else
+ \@latex@warning@no@line{%
+ \noexpand\KOMAScriptVersion\space is
+ `\KOMAScriptVersion',\MessageBreak
+ but `#1' was expected!\MessageBreak
+ You should not use classes, packages or files
+ from\MessageBreak
+ different KOMA-Script versions%
+ }%
+ \fi
+ }
+ \fi
+ \@CheckKOMAScriptVersion{2010/06/17 v3.06 KOMA-Script}%
+\endgroup
%%% From File: scrtime.dtx
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesPackage{scrdate}
- [2009/01/01 v1.1p LaTeX2e KOMA-Script
- package]
-\newcommand\todaysname{%
- \begingroup%
- \@tempcnta=\year
- \@tempcntb=1 % 1. Januar 1980 war ein Dienstag
- \ifnum\@tempcnta<1980 unknown\else%
- \advance\@tempcnta by-1980%
- \@whilenum\@tempcnta>3\do%
- {\advance\@tempcntb by5\advance\@tempcnta by-4}%
- \ifnum\@tempcnta=0%
- \ifnum\month>2\advance \@tempcntb by1\fi%
- \else%
- \advance\@tempcntb by\@tempcnta%
- \advance\@tempcntb by1
- \fi%
- \ifcase\month\or\or\advance\@tempcntb3% Jan = 28 + 3
- \or\advance\@tempcntb3% +Feb = 56 + 3
- \or\advance\@tempcntb6% +Mar = 84 + 6
- \or\advance\@tempcntb1% +Apr = 119 + 1
- \or\advance\@tempcntb4% +May = 147 + 4
- \or\advance\@tempcntb6% +Jun = 175 + 6
- \or\advance\@tempcntb2% +Jul = 210 + 2
- \or\advance\@tempcntb5% +Aug = 238 + 5
- \or% +Sep = 273 + 0
- \or\advance\@tempcntb3% +Oct = 301 + 3
- \or\advance\@tempcntb5% +Nov = 329 + 5
- \fi%
- \advance\@tempcntb by\day%
- \advance\@tempcntb by-1% die Zaehlung beginnt bei 0
- \@whilenum\@tempcntb>6\do%
- {\advance\@tempcntb by-7}%
- \@dayname{\@tempcntb}%
- \fi\endgroup}
-\newcommand\nameday[1]{\renewcommand\todaysname{#1}}
-\newcommand*\scrdate@languagenamewarning{
+\ProvidesPackage{scrdate}[%
+ \KOMAScriptVersion\space package (%
+ day of the week)]
+%%% From File: scrkbase.dtx
+\RequirePackage{scrkbase}[\KOMAScriptVersion]
+%%% From File: scrtime.dtx
+%%% From File: scrtime.dtx
+\newcommand*{\CenturyPart}[1]{\XdivY{#1}{100}}
+\newcommand*{\DecadePart}[1]{\XmodY{#1}{100}}
+\newcommand*{\@GaussYear}[3]{%
+ \ifcase #2
+ \PackageError{scrdate}{month out of range}{%
+ You've asked for the Gauss year of ISO date #1-#2-#3,\MessageBreak
+ this means, that month hat invalid value '#2'.}%
+ \or
+ \numexpr #1 - 1\relax
+ \or
+ \numexpr #1 - 1\relax
+ \else
+ #1
+ \fi
+}
+\newcommand*{\DayNumber}[3]{%
+ \XmodY{%
+ \numexpr #3
+ + \ifcase #2
+ \PackageError{scrdate}{month out of range}{%
+ You've asked for the dayname of ISO date #1-#2-#3,\MessageBreak
+ this means, that month hat invalid value '#2'.}%
+ \or 28 \or 31 \or 2 \or 5 \or 7 \or 10 \or 12 \or 15 \or 18
+ \or 20 \or 23 \or 25
+ \else
+ \PackageError{scrdate}{month out of range}{%
+ You've asked for the dayname of ISO date #1-#2-#3,\MessageBreak
+ this means, that month hat invalid value '#2'.}%
+ \fi
+ + \DecadePart{\@GaussYear{#1}{#2}{#3}}
+ + \XdivY{\DecadePart{\@GaussYear{#1}{#2}{#3}}}{4}
+ + \XdivY{\CenturyPart{\@GaussYear{#1}{#2}{#3}}}{4}
+ - 2 * \CenturyPart{\@GaussYear{#1}{#2}{#3}} \relax
+ }{7}%
+}
+\newcommand*{\ISODayNumber}[1]{\expandafter\@IsoDayNumber#1\@nil}
+\newcommand*{\@IsoDayNumber}{}
+\def\@IsoDayNumber#1-#2-#3\@nil{\DayNumber{#1}{#2}{#3}}
+\newcommand*{\DayName}[3]{\@dayname{\DayNumber{#1}{#2}{#3}}}
+\newcommand*{\ISODayName}[1]{\@dayname{\ISODayNumber{#1}}}
+\newcommand*{\DayNameByNumber}[1]{%
+ \@dayname{\XmodY{#1}{7}}%
+}
+\newcommand*{\ISOToday}{%
+ \the\year-\ifnum \month<10 0\fi\the\month-\ifnum \day<10 0\fi\the\day%
+}
+\newcommand*{\IsoToday}{%
+ \the\year-\the\month-\the\day%
+}
+\newcommand*{\todaysname}{\DayName{\year}{\month}{\day}}
+\newcommand*{\todaysnumber}{\DayNumber{\year}{\month}{\day}}
+\newcommand\nameday[1]{\renewcommand*{\todaysname}{#1}}
+\newcommand*\scrdate@languagenamewarning{%
\PackageWarningNoLine{scrdate}
{\string\languagename\space not
defined, using \string\language.\MessageBreak
This may result in use of wrong language!\MessageBreak
You should use a compatible language
package\MessageBreak
- (e.g. `Babel', `german', `french', ...)}
+ (e.g. `Babel', `german', `french', ...)}%
\let\scrdate@languagenamewarning\relax}
\newcommand\newdaylanguage[8]{%
- \begingroup\expandafter\expandafter\expandafter\endgroup
- \expandafter\ifx\csname l@#1\endcsname\relax
- \PackageWarningNoLine{scrdate}{Language #1\space not defined.\MessageBreak
- \protect\dayname@#1\space skipped!}
- \else
+ \scr@ifundefinedorrelax{l@#1}{%
+ \PackageInfo{scrdate}{Language #1\space not defined.\MessageBreak
+ \protect\dayname@#1\space skipped!}%
+ }{%
\@namedef{dayname@#1}##1{%
- \begingroup%
- \@tempcnta ##1%
- \ifcase\@tempcnta%
- #2\or #3\or #4\or #5\or #6\or #7\or #8\fi\endgroup%
- }
- \AtBeginDocument{
- \begingroup\expandafter\expandafter\expandafter\endgroup
- \expandafter\ifx\csname date#1\endcsname\relax
+ \ifcase ##1
+ #8\or #2\or #3\or #4\or #5\or #6\or #7\fi%
+ }%
+ \AtBeginDocument{%
+ \scr@ifundefinedorrelax{date#1}{%
\PackageWarningNoLine{scrdate}
{\protect\date#1\space not defined.\MessageBreak
\protect\todaysname maybe can't use
- \protect\dayname@#1!}
- \else
+ \protect\dayname@#1!}%
+ }{%
\expandafter\let\csname D@date#1\expandafter\endcsname
\csname date#1\endcsname
\@namedef{date#1}{%
@@ -115,15 +162,15 @@
\@ifundefined{languagename}{
\scrdate@languagenamewarning
\ifnum\language=\@nameuse{l@#1}
- \@nameuse{date#1}
- \fi}{
- \@ifundefined{date\languagename}
- {}
- {\@nameuse{date\languagename}}
- }
- \fi
- }
- \fi
+ \@nameuse{date#1}%
+ \fi}{%
+ \@ifundefined{date\languagename}%
+ {}%
+ {\@nameuse{date\languagename}}%
+ }%
+ }%
+ }%
+ }%
}
\newdaylanguage{german}{Montag}{Dienstag}{Mittwoch}
{Donnerstag}{Freitag}{Samstag}{Sonntag}
@@ -148,11 +195,9 @@
\newdaylanguage{norsk}{Mandag}{Tirsdag}{Onsdag}
{Torsdag}{Fredag}{L\o{}rdag}{S\o{}ndag}
\def\@dayname#1{%
- \begingroup%
- \@tempcnta #1%
- \ifcase\@tempcnta%
- Monday\or Tuesday\or Wednesday\or Thursday\or
- Friday\or Saturday\or Sunday\fi\endgroup%
+ \ifcase #1
+ Monday\or Tuesday\or Wednesday\or Thursday\or
+ Friday\or Saturday\or Sunday\fi%
}
\InputIfFileExists{scrdate.cfg}
{\typeout{*************************************^^J%