%% %% This is file `datetime2-calc.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% datetime2.dtx (with options: `datetime2-calc.sty,package') %% %% datetime2.dtx %% Copyright 2015 Nicola Talbot %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 %% of this license of (at your option) any later version. %% The latest version of this license is in %% http://www.latex-project.org/lppl.txt %% and version 1.3 or later is part of all distributions of LaTeX %% version 2005/12/01 or later. %% %% This work has the LPPL maintenance status `maintained'. %% %% The Current Maintainer of this work is Nicola Talbot. %% %% This work consists of the files datetime2.dtx and datetime2.ins and the derived files datetime2.sty, datetime2-calc.sty. %% %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{datetime2-calc}[2015/03/24 v1.0 (NLCT)] \RequirePackage{pgfkeys} \RequirePackage{pgfcalendar} \newcount\@dtm@julianday \def\@dtm@parsedate#1-#2-#3\@dtm@endparsedate{% \pgfcalendardatetojulian{#1-#2-#3}{\@dtm@julianday}% \pgfcalendarjuliantodate{\@dtm@julianday}{\@dtm@year}{\@dtm@month}{\@dtm@day}% \pgfcalendarjuliantoweekday{\@dtm@julianday}{\count@}% \edef\@dtm@dow{\number\count@}% } \pgfcalendardatetojulian {\@dtm@currentyear-\@dtm@currentmonth-\@dtm@currentday}% {\@dtm@julianday}% \pgfcalendarjuliantoweekday{\@dtm@julianday}{\count@}% \edef\@dtm@currentdow{\number\count@}% \newrobustcmd*{\DTMsavejulianday}[2]{% \pgfcalendarjuliantodate{#2}{\@dtm@year}{\@dtm@month}{\@dtm@day}% \pgfcalendarjuliantoweekday{#2}{\count@}% \csedef{@dtm@#1@dow}{\number\count@}% \cslet{@dtm@#1@year}{\@dtm@year}% \cslet{@dtm@#1@month}{\@dtm@month}% \cslet{@dtm@#1@day}{\@dtm@day}% \ifcsundef{@dtm@#1@hour}{\csdef{@dtm@#1@hour}{0}}{}% \ifcsundef{@dtm@#1@minute}{\csdef{@dtm@#1@minute}{0}}{}% \ifcsundef{@dtm@#1@second}{\csdef{@dtm@#1@second}{0}}{}% \ifcsundef{@dtm@#1@TZhour}{\csdef{@dtm@#1@TZhour}{0}}{}% \ifcsundef{@dtm@#1@TZminute}{\csdef{@dtm@#1@TZminute}{0}}{}% } \newrobustcmd*{\DTMsaveddatetojulianday}[2]{% \ifcsundef{@dtm@#1@year}% {% \PackageError{datetime2-calc}{Unknown date `#1'}{}% }% {% \pgfcalendardatetojulian {\csname @dtm@#1@year\endcsname -\csname @dtm@#1@month\endcsname -\csname @dtm@#1@day\endcsname} {#2}% }% } \newrobustcmd*{\DTMsaveddateoffsettojulianday}[3]{% \ifcsundef{@dtm@#1@year}% {% \PackageError{datetime2-calc}{Unknown date `#1'}{}% }% {% \pgfcalendardatetojulian {\csname @dtm@#1@year\endcsname -\csname @dtm@#1@month\endcsname -\csname @dtm@#1@day\endcsname +#2} {#3}% }% } \newrobustcmd*{\DTMifdate}[4]{% \ifcsundef{@dtm@#1@year}% {% \PackageError{datetime2-calc}{Unknown date `#1'}{}% }% {% \pgfcalendarifdate {\csname @dtm@#1@year\endcsname -\csname @dtm@#1@month\endcsname -\csname @dtm@#1@day\endcsname} {#2}{#3}{#4}% }% } \newrobustcmd*{\DTMsaveddatediff}[3]{% \ifcsundef{@dtm@#1@year}% {% \PackageError{datetime2-calc}{Unknown date `#1'}{}% }% {% \ifcsundef{@dtm@#2@year}% {% \PackageError{datetime2-calc}{Unknown date `#1'}{}% }% {% \pgfcalendardatetojulian {\csname @dtm@#1@year\endcsname -\csname @dtm@#1@month\endcsname -\csname @dtm@#1@day\endcsname} {#3}% \pgfcalendardatetojulian {\csname @dtm@#2@year\endcsname -\csname @dtm@#2@month\endcsname -\csname @dtm@#2@day\endcsname} {\@dtm@julianday}% \advance#3 by -\@dtm@julianday\relax } }% } \newrobustcmd*{\DTMtozulu}[2]{% \ifcsundef{@dtm@#1@year}% {% \PackageError{datetime2-calc}{Unknown date `#1'}{}% }% {% \DTMsaveaszulutime{#2}% {\DTMfetchyear{#1}}% {\DTMfetchmonth{#1}}% {\DTMfetchday{#1}}% {\DTMfetchhour{#1}}% {\DTMfetchminute{#1}}% {\DTMfetchsecond{#1}}% {\DTMfetchTZhour{#1}}% {\DTMfetchTZminute{#1}}% }% } \newrobustcmd*{\DTMsaveaszulutime}[9]{% \edef\@dtm@year{\number#2}% \edef\@dtm@month{\number#3}% \edef\@dtm@day{\number#4}% \edef\@dtm@hour{\number#5}% \edef\@dtm@minute{\number#6}% \edef\@dtm@second{\number#7}% \edef\@dtm@TZhour{\number#8}% \edef\@dtm@TZminute{\number#9}% \pgfcalendardatetojulian{\@dtm@year-\@dtm@month-\@dtm@day}{\@dtm@julianday}% \ifnum\@dtm@TZminute=0\relax \else \count@=\@dtm@minute\relax \ifnum\@dtm@TZhour<0\relax \advance\count@ by -\@dtm@TZminute\relax \else \advance\count@ by \@dtm@TZminute\relax \fi \edef\@dtm@minute{\number\count@}% \ifnum\count@<0\relax \advance\count@ by 60\relax \edef\@dtm@minute{\number\count@}% \ifnum\@dtm@hour=0\relax \def\@dtm@hour{23}% \advance\@dtm@julianday by -1\relax \else \count@ = \@dtm@hour\relax \advance\count@ by -1\relax \edef\@dtm@hour{\number\count@}% \fi \else \ifnum\count@>59\relax \advance\count@ by -60\relax \edef\@dtm@minute{\number\count@}% \count@ = \@dtm@hour\relax \advance\count@ by 1\relax \edef\@dtm@hour{\number\count@}% \ifnum\thehour=24\relax \def\thehour{00}% \advance\@dtm@julianday by 1\relax \fi \fi \fi \fi \ifnum\@dtm@TZhour=0\relax \else \count@=\@dtm@hour\relax \advance\count@ by \@dtm@TZhour\relax \ifnum\count@<0\relax \advance\count@ by 24\relax \edef\@dtm@hour{\number\count@}% \advance\@dtm@julianday by -1\relax \else \ifnum\count@>23\relax \advance\count@ by -24\relax \edef\@dtm@hour{\number\count@}% \advance\@dtm@julianday by 1\relax \else \edef\@dtm@hour{\number\count@}% \fi \fi \fi \pgfcalendarjuliantodate{\@dtm@julianday}{\@dtm@year}{\@dtm@month}{\@dtm@day}% \pgfcalendarjuliantoweekday{\@dtm@julianday}{\count@}% \csedef{@dtm@#1@dow}{\number\count@}% \cslet{@dtm@#1@year}{\@dtm@year}% \cslet{@dtm@#1@month}{\@dtm@month}% \cslet{@dtm@#1@day}{\@dtm@day}% \cslet{@dtm@#1@hour}{\@dtm@hour}% \cslet{@dtm@#1@minute}{\@dtm@minute}% \cslet{@dtm@#1@second}{\@dtm@second}% \csdef{@dtm@#1@TZhour}{0}% \csdef{@dtm@#1@TZminute}{0}% } \endinput %% %% End of file `datetime2-calc.sty'.