Datumsberechnungen Thema ist als GELÖST markiert

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


EinFragender

Datumsberechnungen

Beitrag 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.

rais
Forum-Guru
Forum-Guru
Beiträge: 411
Registriert: Di 21. Sep 2010, 00:37

Re: Datumsberechnungen

Beitrag 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
One of the joys of travel is visiting new towns and meeting new people---G.Khan (Robert Asprin, Another Fine Myth)

EinFragender

Danke

Beitrag von EinFragender »

Das hat super geklappt. Ich danke dir!

Antworten