Seite 1 von 1

Datumsberechnungen

Verfasst: Mo 15. Sep 2014, 14:09
von EinFragender
Hallo liebe Freunde,

ich möchte gerne, dass Latex mir eine Frist ausgibt. Und zwar den letzten Tag des nächsten Monats von heute an gesehen.

Beispiele:

Heute: 15. September 2014
Fristende: 31. Oktober 2014

Heute: 01. Dezember 2014
Fristende: 31. Januar 2015

Ich habe mal mit datenumber experimentiert, aber es nicht hinbekommen.
Für Tipps zum vorgehen wäre ich dankbar.

Inwieweit ich hier ein Minimalbeispiel anfertigen sollte ist mir nicht klar, kann aber eines auf Wunsch nachliefern.

Re: Datumsberechnungen

Verfasst: Mo 15. Sep 2014, 19:28
von rais
EinFragender hat geschrieben: ich möchte gerne, dass Latex mir eine Frist ausgibt. Und zwar den letzten Tag des nächsten Monats von heute an gesehen.
Im Grunde genommen bräuchtest Du dazu nur das Startdatum anzugeben (bzw. aus \today abzuleiten), den Monat fürs Fristende zu inkrementieren (und bei Überlauf auf 1 zu setzen und das Jahr fürs Fristende zu inkrementieren) und ggf. zu beachten, ob das Fristende (so es denn im Februar liegt) in einem Schaltjahr (oder nicht) zu setzen ist.
\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage{datenumber}
\newcounter{mym}
\newcounter{myy}
\newif\iflpyear
\newcommand*\myd{% Letzter Tag im ...
  \ifleapyear{\value{myy}}\lpyeartrue\else\lpyearfalse\fi
% \ifleapyear lässt sich nicht direkt im folgenden \ifcase verwenden, vermutlich weil es als Makro definiert ist, `sieht' (La)TeX den zum \ifleapyear gedachten \fi als Ende zu \ifcase (bei `\or\ifleapyear{\value{myy}} 29\else 28\fi' für die Februartage), deshalb hier der Umweg über \iflpyear
  \ifcase\value{mym}%
  \or 31% Januar
  \or \iflpyear 29\else 28\fi% Februar
  \or 31% März
  \or 30% April
  \or 31% Mai
  \or 30% Juni
  \or 31% Juli
  \or 31% August
  \or 30% September
  \or 31% Oktober
  \or 30% November
  \or 31% Dezember
  \fi
}
\makeatletter
\newcommand*\frist[3]{%Start-d/m/y
  \setcounter{myy}{#3}% Fristende Jahr
  \setcounter{mym}{#2}% Startmonat
  \stepcounter{mym}% Fristende Monat
  \ifnum\value{mym}>12
    \setcounter{mym}{1}%Januar
    \stepcounter{myy}% nächsten Jahres
  \fi
  \begin{tabular}{@{}r@{:~}l@{}}
    Heute & #1. \@monthname{#2} #3\\
    Fristende & \myd. \@monthname{\value{mym}} \themyy
  \end{tabular}
}
\makeatother
\begin{document}
\frist{15}{9}{2014}

\frist{1}{12}{2014}

\frist{\the\day}{\the\month}{\the\year}
\end{document}
MfG
Rainer

Danke

Verfasst: Mi 17. Sep 2014, 12:00
von EinFragender
Das hat super geklappt. Ich danke dir!