% \iffalse % ====================================================================== % scrdate.dtx % Copyright © 1995–2026 Markus Kohm % % This work may be distributed and/or modified under the conditions of % the LaTeX Project Public License, version 1.3c of the license. % The latest version of this license is in % http://www.latex-project.org/lppl.txt % and version 1.3c or later is part of all distributions of LaTeX % version 2005/12/01 or later and of this work. % % This work has the LPPL maintenance status "maintained". % % The Current Maintainer and author of this work is Markus Kohm. % % This work consists of the files README.md, LICENSE.md and scrdate.dtx. % ====================================================================== %\NeedsTeXFormat{LaTeX2e}[2022/06/01] %<*dtx> \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \ProvidesFile{scrdate.dtx} % %\ProvidesPackage{scrdate} %<*dtx|package> [2026-06-08 v3.50 day of the week and other date functions] % %<*dtx> \ifx\documentclass\undefined \input docstrip.tex \generate{\usepreamble\defaultpreamble \file{scrdate.sty}{% \from{scrdate.dtx}{package}% } % } \else \let\endbatchfile\relax \fi \endbatchfile \documentclass[USenglish]{koma-script-source-doc} \usepackage{babel} \usepackage{engord} \usepackage{scrdate} \setcounter{StandardModuleDepth}{2} \begin{document} \DocInput{scrdate.dtx} \end{document} % % \fi % % \changes{v3.36}{2022/02/07}{switch over from \cls*{scrdoc} to % \cls*{koma-script-source-doc}} % \changes{v3.36}{2022/02/07}{require package \pkg*{scrlogo} instead of % defining \cs{KOMAScript}} % \changes{v3.40}{2023/04/17}{guide names changed} % \changes{v3.50}{2026-05-18}{spin-off} % % \GetFileInfo{scrdate.dtx} % \title{The Name of the Day and other Date Operations with % Packages \pkg*{scrdate}} % \author{\href{mailto:komascript@gmx.info}{Markus Kohm}} % \date{Version \fileversion{} of \filedate % \footnote{\ExpandArgs{e}\ISODayName{\filedate}.}} % \maketitle % \begin{abstract} % The package \pkg*{scrdate} defines some macros % to handle the name of the day and the date in ISO format. % % Up to version 3.49.2 it was part of the \KOMAScript{} collection. Since % version 3.50 it is a standalone package. % \end{abstract} % \tableofcontents % % \section{User Manual} % % Originally, the \pkg*{scrdate} package could only give the day of the % week for the current date. Nowadays, it offers this and more for any date in % the Gregorian calendar. % % \DescribeCommand\CenturyPart % \DescribeCommand\DecadePart % The command \cs{CenturyPart}\marg{year} returns the value of the century % digits\,---\,thousands and hundreds\,---\,of a \meta{year}. The command % \cs{DecadePart}\marg{year} command, on the other hand, gives the value of % the remaining digits, i.\,e. the tens and the units. The \meta{year} can have % any number of digits. You can assign the value directly to a counter or use it % for calculations with \cs{numexpr}\dots\cs{relax} or \cs{inteval}. To % output it as an Arabic number, you should prefix it with \cs{the}. % % \begin{labeling}{Example:} % \item[Example:] % You want to calculate and print the century of the current year. %\begin{verbatim} % The year \the\year\ is year \the\DecadePart{\year} of the % \engordnumber{\numexpr \CenturyPart{\year}+1\relax} century. %\end{verbatim} % The result would be: % \begin{quote} % The year \the\year\ is year \the\DecadePart{\year} of the % \engordnumber{\inteval{\CenturyPart{\year}+1}} century. % \end{quote} % This example uses the \pkg{engord} package. % \end{labeling} % % Note that the counting method used here treats the year 2000 as % year~0\,---\,and therefore the first year\,---\,of the 21st~century. If % necessary, however, you can make a correction with \cs{numexpr} or % \cs{inteval}, as shown for the ordinal number in the example. % % \DescribeCommand\DayNumber % \DescribeCommand\ISODayNumber % These two commands return the value of the day-of-the-week number for any % date. They differ only in the method of specifying the date. While the % \cs{DayNumber}\linebreak[1]\marg{year}\linebreak[1]\marg{month}\linebreak[1]\marg{day} % command requires the \meta{year}, \meta{month}, and \meta{day} as separate % parameters, the \cs{ISODayNumber}\marg{ISO date} command expects an % \meta{ISO date} as a single argument, \meta{ISO date}, using the ISO notation % \meta{year}\texttt{-}\meta{month}\texttt{-}\meta{day}. It does not matter if % the \meta{month} or \meta{day} have one or two digits. You can use the % result of both commands to assign directly to a counter or for calculations % using \cs{numexpr}\dots\cs{relax} or \cs{inteval}. To print it as an Arabic % number, you should prefix it with \cs{the}. % % \begin{labeling}{Example:} % \item[Example:] % You want to know the number of the day of the week of the 1st~May~2027. %\begin{verbatim} % The 1st~May~2027 has \the\ISODayNumber{2027-5-1} % as the number of the day of the week. %\end{verbatim} % The result will be: % \begin{quote} % The 1st~May~2027 has \the\ISODayNumber{2027-5-1} % as the number of the day of the week. % \end{quote} % \end{labeling} % The days of the week are numbered as follows: Sunday\,=\,0, Monday\,=\,1, % Tuesday\,=\,2, Wednesday\,=\,3, Thursday\,=\,4, Friday\,=\,5, and % Saturday\,=\,6. % % \DescribeCommand\DayNameByNumber % \DescribeCommand\DayName % \DescribeCommand\ISODayName % Usually you are less interested in the number of the day of the week than in % its name. Therefore, the command \cs{DayNameByNumber}\marg{number of the day % of the week} returns the name of the day of the week corresponding to a % \meta{number of the day of the week}. This number can be the result, for % example, of \cs{DayNumber} or \cs{ISODayNumber}. The two commands % \cs{DayName}\marg{year}\marg{month}\marg{day} and \cs{ISODayName}\marg{ISO % date} directly return the name of the day of the week of a given date. % % \begin{labeling}{Example:} % \item[Example:] You want to know the name of the day of the week of the % 24th~December~2027. %\begin{verbatim} % Please pay by \ISODayName{2027-12-24}, % 24th~December~2027 the amount of \dots. %\end{verbatim} % The result will be: % \begin{quote} % Please pay by \ISODayName{2027-12-24}, % 24th~December~2027 the amount of \dots. % \end{quote} % \end{labeling} % % Once again, it is particularly worth noting that you can perform % calculations, to a certain extent: % \begin{labeling}{Example:} % \item[Example:] You want to know the names of the day of the week 12~days % from now and 24~days before the 24th~December~2027. %\begin{verbatim} % In 12~days, the name of the day of the week will be % \DayNameByNumber{\DayNumber{\year}{\month}{\day}+12}, and % 24~days before the 24th~December~2027 it will be % \DayNameByNumber{\ISODayNumber{2027-12-24}-24}, while two % weeks and three days after a Wednesday will be a % \DayNameByNumber{3+2*7+3}. %\end{verbatim} % The result could be, for example: % \begin{quote} % In 12~days, the name of the day of the week will be % \DayNameByNumber{\DayNumber{\year}{\month}{\day}+12}, and % 24~days before the 24th~December~2027 it will be % \DayNameByNumber{\ISODayNumber{2027-12-24}-24}, while two % weeks and three days after a Wednesday will be a % \DayNameByNumber{3+2*7+3}. % \end{quote} % \end{labeling} % % \DescribeCommand{\ISOToday} % \DescribeCommand{\IsoToday} % \DescribeCommand{\todaysname} % \DescribeCommand{\todaysnumber} % In the previous examples, the current date was always specified cumbersomely % using the \TeX{} registers \cs{year}, \cs{month}, and \cs{day}. The % \cs{ISOToday} and \cs{IsoToday} commands directly return the current date in % ISO-notation. These commands differ only in the fact that \cs{ISOToday} % always outputs a two-digit month and day, while \cs{IsoToday} outputs % single-digit numbers for values less than 10. The \cs{todaysname} command % directly returns the name of the current day of the week, while % \cs{todaysnumber} returns the number of the current day of the week. You can % find more information about using this value in the explanations of % \cs{DayNumber} and \cs{ISODayNumber} above. % % \begin{labeling}{Example:} % \item[Example:] I want to show you on what day of the week this document was % typeset: %\begin{verbatim} % This document was created on a \todaysname. %\end{verbatim} % This will result, for example, in: % \begin{quote} % This document was created on a \todaysname. % \end{quote} % \end{labeling} % % For languages that have a case system for nouns, note that the package % cannot decline words. The terms are given in the form appropriate for % displaying a date in a letter, which is the nominative singular for the % currently supported languages. Given this limitation, the example above will % not work correctly if translated directly into some other languages. % % The names of the weekdays in \pkg*{scrdate} all have initial capital % letters. If you need the names completely in lower case, for example because % that is the convention in the relevant language, simply wrap the command % with the \LaTeX{} \cs{MakeLowercase} command: %\begin{verbatim} % \MakeLowercase{\todaysname} %\end{verbatim} % This converts the whole argument into lower-case letters. Of course, you can % also do this for \cs{DayNameByNumber}, \cs{DayName}, and \cs{ISODayName} % commands described above. % % % \DescribeCommand{\nameday} % Just as you can directly modify the output of \cs{today} with \cs{date}, so % you can change the output of \cs{todaysname} to \meta{name} with % \cs{nameday}\marg{name}. % \begin{labeling}{Example:} % \item[Example:] You change the current date to a fixed value using % \cs{date}. You are not interested in the actual name of the day, but want % only to show that it is a workday. So you write: %\begin{verbatim} % \nameday{workday} %\end{verbatim} % After this, the previous example will result in: % \begin{quote} % This document was created on a workday. % \end{quote} % \end{labeling} % There's no corresponding command to change the result of % \cs{ISOToday} or \cs{IsoToday}. % % % \DescribeCommand\newdaylanguage % Currently the \pkg*{scrdate} package recognizes the following languages: % \begin{itemize}\setlength{\itemsep}{.5\itemsep} % \item Croatian (\texttt{croatian}), % \item Czech (\texttt{czech}), % \item Danish (\texttt{danish}), % \item Dutch (\texttt{dutch}), % \item English (\texttt{american}, \texttt{australian}, \texttt{british}, % \texttt{canadian}, \texttt{english}, \texttt{UKenglish}, and % \texttt{USenglish}), % \item Finnish (\texttt{finnish}), % \item French (\texttt{french}), % \item German (\texttt{austrian}, \texttt{german}, \texttt{naustrian}, % \texttt{ngerman}, \texttt{nswissgerman}, and \texttt{swissgerman}), % \item Italian (\texttt{italian}), % \item Norwegian (\texttt{norsk}), % \item Polish (\texttt{polish}), % \item Slovak (\texttt{slovak}), % \item Spanish (\texttt{spanish}), % \item Swedish (\texttt{swedish}). % \end{itemize} % You can also configure it for additional languages. To do so, the first % argument of % \cs{newdaylanguage}\linebreak[1]\marg{language}\linebreak[1]\marg{Monday}\linebreak[1]\marg{Tuesday}\linebreak[1]\marg{Wednesday}\linebreak[1]\marg{Thursday}\linebreak[1]\marg{Friday}\linebreak[1]\marg{Saturday}\linebreak[1]\marg{Sunday} % is the name of the language, and the other arguments are the names of the % corresponding days of the week. % % In the current implementation, it does not matter whether you load % \pkg*{scrdate} before or after \pkg{ngerman}, \pkg{babel}, or similar % packages. In each case the correct language will be used provided it is % supported. % % To be more precise, as long as you select a language in a way that is % compatible with \pkg{babel}, \pkg*{scrdate} will use the correct % language. If this is not the case, you will get (US) English names. % % Of course, if you create definitions for a language that was previously % unsupported, please mail them to the author of \pkg*{scrdate} or add a % ticket to the issue tracker. There is a good chance that future versions of % \pkg*{scrdate} will add support for that language.% % % % \MaybeStop{\PrintIndex} % % \section{Implementation} % % \begin{macrocode} %<*package> % \end{macrocode} % % \changes{v1.1a}{1995/02/12}{changed all but the user-interface} % \changes{v3.05a}{2010/03/10}{changed everything} % With version~3.05a \pkg*{scrdate} was rewritten. First step was to make % more macros full expandable to provide \cs{MakeUppercase} and % \cs{MakeLowercase}. Second was to extend the user interface by some new % functionality. % % Currently we need \cs{XdivY} and \cs{XmodY} of package \pkg*{scrbase}. But % in future we will switch over to L3. % \begin{macrocode} \RequirePackage{scrbase} % \end{macrocode} % % \begin{command}{\CenturyPart} % \changes{v3.05a}{2010/03/10}{added} % This is the century part of a year number and so only a shortcut to % |\XdivY{...}{100}|, that is defined at \pkg*{scrbase}. % \begin{macrocode} \newcommand*{\CenturyPart}[1]{\XdivY{#1}{100}} % \end{macrocode} % \end{command} % % \begin{command}{\DecadePart} % \changes{v3.05a}{2010/03/10}{added} % This is the year number withoud the century part and therefrso only a % shortcut to |\XmodY{...}{100}|, that is defined at \pkg*{scrbase}. % \begin{macrocode} \newcommand*{\DecadePart}[1]{\XmodY{#1}{100}} % \end{macrocode} % \end{command} % % \begin{macro}{\@GaussYear} % \changes{v3.05a}{2010/03/10}{added} % At the Gauss calculation of the day of the week January and February relates % to the year before. This macro does the correction for any date. % \begin{macrocode} \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 } % \end{macrocode} % \end{macro} % % \begin{command}{\DayNumber} % \changes{v3.05a}{2010/03/10}{added} % Returns the numerical value of the day of week. Note, that Sunday is 0, % Monday is 1, \dots, Saturday is 6. We use the Gauss calculation of the day % of the week. First argument is the year, second the month and last the day % of the month. % \begin{macrocode} \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}% } % \end{macrocode} % \end{command} % \begin{command}{\ISODayNumber} % \changes{v3.05a}{2010/03/10}{added} % The same like \cs{DayNumber} but with ISO date argument. % \begin{macrocode} \newcommand*{\ISODayNumber}[1]{\expandafter\@IsoDayNumber#1\@nil} % \end{macrocode} % \begin{macro}{\@IsoDayNumber} % \changes{v3.05a}{2010/03/10}{added} % \begin{macrocode} \newcommand*{\@IsoDayNumber}{} \def\@IsoDayNumber#1-#2-#3\@nil{\DayNumber{#1}{#2}{#3}} % \end{macrocode} % \end{macro} % \end{command} % % \begin{command}{\DayName} % \changes{v3.05a}{2010/03/10}{added} % Returns the name of the day of the week. Arguments like \cs{DayNumber}. % \begin{macrocode} \newcommand*{\DayName}[3]{\@dayname{\DayNumber{#1}{#2}{#3}}} % \end{macrocode} % \end{command} % \begin{command}{\ISODayName} % \changes{v3.05a}{2010/03/10}{added} % The same like \cs{DayName} but with ISO date argument. % \begin{macrocode} \newcommand*{\ISODayName}[1]{\@dayname{\ISODayNumber{#1}}} % \end{macrocode} % \end{command} % % \begin{command}{\DayNameByNumber} % \changes{v3.05a}{2010/03/10}{added} % Returns the name of the day of the week. The argument is a number that will % be transposed to the range 0\dots6. % \begin{macrocode} \newcommand*{\DayNameByNumber}[1]{% \@dayname{\XmodY{#1}{7}}% } % \end{macrocode} % \end{command} % % \begin{command}{\ISOToday} % \changes{v3.05a}{2010/03/10}{added} % Returns the ISO date. % \begin{macrocode} \newcommand*{\ISOToday}{% \the\year-\ifnum \month<10 0\fi\the\month-\ifnum \day<10 0\fi\the\day% } % \end{macrocode} % \end{command} % % \begin{command}{\IsoToday} % \changes{v3.05a}{2010/03/10}{added} % Returns the ISO date. % \begin{macrocode} \newcommand*{\IsoToday}{% \the\year-\the\month-\the\day% } % \end{macrocode} % \end{command} % % \begin{command}{\todaysname} % \changes{v3.05a}{2010/03/10}{re-implemented} % Using \cs{DayName} this is very, very simple. % \begin{macrocode} \newcommand*{\todaysname}{\DayName{\year}{\month}{\day}} % \end{macrocode} % \end{command} % % \begin{command}{\todaysnumber} % \changes{v3.05a}{2010/03/11}{added} % Using \cs{DayNumber} this is very, very simple. % \begin{macrocode} \newcommand*{\todaysnumber}{\DayNumber{\year}{\month}{\day}} % \end{macrocode} % \end{command} % % \begin{command}{\nameday} % \changes{v3.05a}{2010/03/10}{no longer \cs{long}} % We simply have to redefine \cs{todaysname}. % \begin{macrocode} \newcommand\nameday[1]{\renewcommand*{\todaysname}{#1}} % \end{macrocode} % \end{command} % % \begin{command}{\newdaylanguage} % \changes{v3.05a}{2010/03/10}{Sunday is 0} % We write a macro to define the name of the days. % \begin{macro}{\scrdate@languagenamewarning} % But before this, we have to define a once only warning. % \begin{macrocode} \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', ...)}% \let\scrdate@languagenamewarning\relax } % \end{macrocode} % \end{macro} % \begin{macrocode} \newcommand\newdaylanguage[8]{% % \end{macrocode} % First we check, if the language is defined at the format, the user uses. % If it is not defined, we do not define the name of the days and warn. % \begin{macrocode} \scr@ifundefinedorrelax{l@#1}{% \PackageInfoNoLine{scrdate}{Language #1\space not defined.\MessageBreak \protect\dayname@#1\space skipped}% % \end{macrocode} % \changes{v1.1c}{1995/05/24}{missing \cs{end\{macrocode\}} added} % If it is defined, we define the name-selection-macro % \cs{dayname@\meta{language}}. % First we define the new macro \cs{dayname@\meta{language}}: % \changes{v3.05a}{2010/03/10}{group removed} % \changes{v3.15}{2014/12/11}{more robust \cs{ifcase}} % \begin{macrocode} }{% \@namedef{dayname@#1}##1{% \ifcase\numexpr \XmodY{##1}{7}\relax #8\or #2\or #3\or #4\or #5\or #6\or #7\fi% }% % \end{macrocode} % Then we define, what to do at \cs{begin\{document\}}: % \begin{macrocode} \AtBeginDocument{% % \end{macrocode} % There we first have to test, if \cs{date\meta{language}} is defined % (e.g. using package \pkg{german}). If not, we have to warn once more. % \begin{macrocode} \scr@ifundefinedorrelax{date#1}{% \PackageInfoNoLine{scrdate} {\protect\date#1\space not defined.\MessageBreak \protect\todaysname\space probably cannot use \protect\dayname@#1}% % \end{macrocode} % But if it is defined, we can use it % \begin{macrocode} }{% % \end{macrocode} % There we first save \cs{date\meta{language}} as \cs{D@date\meta{language}}. % \begin{macrocode} \expandafter\let\csname D@date#1\expandafter\endcsname \csname date#1\endcsname % \end{macrocode} % Now we redefine \cs{date\meta{language}}. It first defines \cs{@dayname} and % then calls saved macro. % \begin{macrocode} \@namedef{date#1}{% \expandafter\let\expandafter\@dayname\csname dayname@#1\endcsname \@nameuse{D@date#1}}% % \end{macrocode} % Last we have to select this new \cs{date\meta{language}}. % \changes{v1.1j}{2000/01/20}{use of \cs{languagename} if defined} % \changes{v3.08b}{2011/03/31}{one \% added} % \begin{macrocode} \@ifundefined{languagename}{% \scrdate@languagenamewarning \ifnum\language=\@nameuse{l@#1} \@nameuse{date#1}% \fi }{% \@ifundefined{date\languagename}% {}% {\@nameuse{date\languagename}}% }% }% }% }% } % \end{macrocode} % \end{command} % % \begin{macro}{\@dayname} % This should be named selecting the language. Since I changed the definitions % package \pkg{german} and equal may be loaded before or after \pkg*{scrdate} % or not. % % First we define the usual languages using \cs{newdaylanguage}: % \begin{macro}{\dayname@german} % \begin{macrocode} \newdaylanguage{german}{Montag}{Dienstag}{Mittwoch} {Donnerstag}{Freitag}{Samstag}{Sonntag} % \end{macrocode} % \end{macro} % \begin{macro}{\dayname@ngerman} % \changes{v1.1i}{1999/10/09}{new language ``ngerman''} % \begin{macrocode} \newdaylanguage{ngerman}{Montag}{Dienstag}{Mittwoch} {Donnerstag}{Freitag}{Samstag}{Sonntag} % \end{macrocode} % \end{macro} % \begin{macro}{\dayname@naustrian} % \changes{v3.08b}{2011/02/22}{new language ``naustrian''} % \begin{macrocode} \newdaylanguage{naustrian}{Montag}{Dienstag}{Mittwoch} {Donnerstag}{Freitag}{Samstag}{Sonntag} % \end{macrocode} % \end{macro} % \begin{macro}{\dayname@austrian} % \changes{v3.08b}{2011/02/22}{new language ``austrian''} % \begin{macrocode} \newdaylanguage{austrian}{Montag}{Dienstag}{Mittwoch} {Donnerstag}{Freitag}{Samstag}{Sonntag} % \end{macrocode} % \end{macro} % \begin{macro}{\dayname@swissgerman} % \changes{v3.13}{2014/01/23}{new language ``swissgerman''} % \begin{macrocode} \newdaylanguage{swissgerman}{Montag}{Dienstag}{Mittwoch} {Donnerstag}{Freitag}{Samstag}{Sonntag} % \end{macrocode} % \end{macro} % \begin{macro}{\dayname@nswissgerman} % \changes{v3.13}{2014/01/23}{new language ``nswissgerman''} % \begin{macrocode} \newdaylanguage{nswissgerman}{Montag}{Dienstag}{Mittwoch} {Donnerstag}{Freitag}{Samstag}{Sonntag} % \end{macrocode} % \end{macro} % % \begin{macro}{\dayname@american} % \changes{v3.13}{2014/01/23}{new language ``american''} % \begin{macrocode} \newdaylanguage{american}{Monday}{Tuesday}{Wednesday} {Thursday}{Friday}{Saturday}{Sunday} % \end{macrocode} % \end{macro} % \begin{macro}{\dayname@australian} % \changes{v3.13}{2014/01/23}{new language ``australian''} % \begin{macrocode} \newdaylanguage{australian}{Monday}{Tuesday}{Wednesday} {Thursday}{Friday}{Saturday}{Sunday} % \end{macrocode} % \end{macro} % \begin{macro}{\dayname@british} % \changes{v3.13}{2014/01/23}{new language ``british''} % \begin{macrocode} \newdaylanguage{british}{Monday}{Tuesday}{Wednesday} {Thursday}{Friday}{Saturday}{Sunday} % \end{macrocode} % \end{macro} % \begin{macro}{\dayname@canadian} % \changes{v3.13}{2014/01/23}{new language ``canadian''} % \begin{macrocode} \newdaylanguage{canadian}{Monday}{Tuesday}{Wednesday} {Thursday}{Friday}{Saturday}{Sunday} % \end{macrocode} % \end{macro} % \begin{macro}{\dayname@english} % \changes{v1.1g}{1997/06/21}{correct name is ``tuesday''} % \begin{macrocode} \newdaylanguage{english}{Monday}{Tuesday}{Wednesday} {Thursday}{Friday}{Saturday}{Sunday} % \end{macrocode} % \end{macro} % \begin{macro}{\dayname@newzealand} % \changes{v3.13}{2014/01/23}{new language ``newzealand''} % \begin{macrocode} \newdaylanguage{newzealand}{Monday}{Tuesday}{Wednesday} {Thursday}{Friday}{Saturday}{Sunday} % \end{macrocode} % \end{macro} % \begin{macro}{\dayname@UKenglish} % \changes{v3.13}{2014/01/23}{new language ``UKenglish''} % \begin{macrocode} \newdaylanguage{UKenglish}{Monday}{Tuesday}{Wednesday} {Thursday}{Friday}{Saturday}{Sunday} % \end{macrocode} % \end{macro} % \begin{macro}{\dayname@ukenglish} % \changes{v3.24}{2017/05/29}{new language ``ukenglish''} % \begin{macrocode} \newdaylanguage{ukenglish}{Monday}{Tuesday}{Wednesday} {Thursday}{Friday}{Saturday}{Sunday} % \end{macrocode} % \end{macro} % \begin{macro}{\dayname@USenglish} % \changes{v1.1g}{1997/06/21}{correct name is ``tuesday''} % \begin{macrocode} \newdaylanguage{USenglish}{Monday}{Tuesday}{Wednesday} {Thursday}{Friday}{Saturday}{Sunday} % \end{macrocode} % \end{macro} % \begin{macro}{\dayname@usenglish} % \changes{v3.24}{2017/05/29}{new language ``usenglish''} % \begin{macrocode} \newdaylanguage{usenglish}{Monday}{Tuesday}{Wednesday} {Thursday}{Friday}{Saturday}{Sunday} % \end{macrocode} % \end{macro} % % \begin{macro}{\dayname@acadian} % \changes{v3.13}{2014/01/23}{new language ``acadian''} % This is a former \texttt{french} alias of \pkg{babel}. It will be removed % from \pkg*{scrdate} in future. % \begin{macrocode} \newdaylanguage{acadian}{Lundi}{Mardi}{Mercredi} {Jeudi}{Vendredi}{Samedi}{Dimanche} % \end{macrocode} % \end{macro} % \begin{macro}{\dayname@canadien} % \changes{v3.13}{2014/01/23}{new language ``canadien''} % This is a former \texttt{french} alias of \pkg{babel}. It will be removed % from \pkg*{scrdate} in future. % \begin{macrocode} \newdaylanguage{canadien}{Lundi}{Mardi}{Mercredi} {Jeudi}{Vendredi}{Samedi}{Dimanche} % \end{macrocode} % \end{macro} % \begin{macro}{\dayname@francais} % \changes{v3.13}{2014/01/23}{new language ``francais''} % This is a former \texttt{french} alias of \pkg{babel}. It will be removed % from \pkg*{scrdate} in future. % \begin{macrocode} \newdaylanguage{francais}{Lundi}{Mardi}{Mercredi} {Jeudi}{Vendredi}{Samedi}{Dimanche} % \end{macrocode} % \end{macro} % \begin{macro}{\dayname@french} % \begin{macrocode} \newdaylanguage{french}{Lundi}{Mardi}{Mercredi} {Jeudi}{Vendredi}{Samedi}{Dimanche} % \end{macrocode} % \end{macro} % \begin{macro}{\dayname@italian} % \changes{v1.1f}{1997/06/06}{New (thanks to Lorenzo M.\ Catucci)} % \begin{macrocode} \newdaylanguage{italian}{Luned\`\i}{Marted\`\i}{Mercoled\`\i} {Gioved\`\i}{Venerd\`\i}{Sabato}{Domenica} % \end{macrocode} % \end{macro} % \begin{macro}{\dayname@spanish} % \changes{v1.1h}{1997/07/26}{New (thanks to Ralph J.\ Hangleiter)} % \begin{macrocode} \newdaylanguage{spanish}{Lunes}{Martes}{Mi\'ercoles} {Jueves}{Viernes}{S\'abado}{Domingo} % \end{macrocode} % \end{macro} % \begin{macro}{\dayname@croatian} % \changes{v1.1l}{2001/10/05}{New (thanks to Branka Lon\v{c}arevi\'{c})} % \begin{macrocode} \newdaylanguage{croatian}{Ponedjeljak}{Utorak}{Srijeda} {\v{C}etvrtak}{Petak}{Subota}{Nedjelja} % \end{macrocode} % \end{macro} % \begin{macro}{\dayname@dutch} % \changes{v1.1m}{2002/02/02}{New (thanks to Henk Jongbloets)} % \changes{v1.1p}{2009/01/01}{fixed to upper case} % \begin{macrocode} \newdaylanguage{dutch}{Maandag}{Dinsdag}{Woensdag} {Donderdag}{Vrijdag}{Zaterdag}{Zondag} % \end{macrocode} % \end{macro} % % \begin{macro}{\dayname@finnish} % \changes{v1.1n}{2005/02/07}{New (thanks to Hannu V\"ais\"anen)} % \begin{macrocode} \newdaylanguage{finnish}{Maanantai}{Tiistai}{Keskiviikko} {Torstai}{Perjantai}{Lauantai}{Sunnuntai} % \end{macrocode} % \end{macro} % % \begin{macro}{\dayname@norsk} % \changes{v1.1p}{2009/01/01}{New (thank to Sveinung Heggen)} % \begin{macrocode} \newdaylanguage{norsk}{Mandag}{Tirsdag}{Onsdag} {Torsdag}{Fredag}{L\o{}rdag}{S\o{}ndag} % \end{macrocode} % \end{macro} % % \begin{macro}{\dayname@danish} % \changes{v3.08}{2011/01/18}{New (thanks to Benjamin Hell)} % \begin{macrocode} \newdaylanguage{danish}{Mandag}{Tirsdag}{Onsdag} {Torsdag}{Fredag}{L\o{}rdag}{S\o{}ndag} % \end{macrocode} % \end{macro} % % \begin{macro}{\dayname@swedish} % \changes{v3.08}{2011/01/18}{New (thanks to Benjamin Hell)} % \begin{macrocode} \newdaylanguage{swedish}{M\aa{}ndag}{Tisdag}{Onsdag} {Torsdag}{Fredag}{L\"ordag}{S\"ondag} % \end{macrocode} % \end{macro} % % \begin{macro}{\dayname@polish} % \changes{v3.13}{2014/01/07}{New (thanks to Blandyna Bogdol)} % \changes{v3.13}{2014/01/23}{Fixed (thanks to Elke Schubert)} % \begin{macrocode} \newdaylanguage{polish}{Poniedzia\l{}ek}{Wtorek}{\'Sroda} {Czwartek}{Pi\aob{}tek}{Sobota}{Niedziela} % \end{macrocode} % \end{macro} % % \begin{macro}{\dayname@czech} % \changes{v3.13}{2014/01/23}{New (thanks to Elke Schubert)} % \begin{macrocode} \newdaylanguage{czech}{Pond\v{e}l\'\i}{\'Uter\'y}{St\v{r}eda} {\v{C}tvrtek}{P\'atek}{Sobota}{Ned\v{e}le} % \end{macrocode} % \end{macro} % % \begin{macro}{\dayname@slovak} % \changes{v3.13}{2014/02/26}{New (thanks to Elke Schubert)} % \begin{macrocode} \newdaylanguage{slovak}{Pondelok}{Utorok}{Streda} {\v{S}tvrtok}{Piatok}{Sobota}{Nede\v{l}a} % \end{macrocode} % \end{macro} % % If there are no language-definitions, we simply want the US-english names % of the days. % \changes{v1.1g}{1997/06/21}{correct name is ``tuesday''} % \changes{v3.15}{2014/12/11}{default language definition fixed} % \begin{macrocode} \let\@dayname\dayname@english % \end{macrocode} % \end{macro} % % Last but not least file \file{scrdate.cfg} has to be included, % if it exists. % \changes{v3.42}{2024/02/01}{\cs{typeout} replaced by either % \cs{PackageNote} or \cs{PackageInfo}} % \begin{macrocode} \InputIfFileExists{scrdate.cfg} {% \@ifundefined{PackageNote}{\PackageInfo}{\PackageNote}% {scrdate}{Local configuration file scrdate.cfg loaded}% }{} % \end{macrocode} % % \begin{macrocode} % % \end{macrocode} % % \Finale % \PrintChanges % % \endinput % Local Variables: % mode: doctex % ispell-local-dictionary: "en_US" % eval: (flyspell-mode 1) % TeX-master: t % TeX-engine: luatex-dev % eval: (setcar (or (cl-member "Index" (setq-local TeX-command-list (copy-alist TeX-command-list)) :key #'car :test #'string-equal) (setq-local TeX-command-list (cons nil TeX-command-list))) '("Index" "mkindex %s" TeX-run-index nil t :help "makeindex for dtx")) % End: