# Referring to dates other than \today

Is there a package that allows one to work with dates in the following way: just as \date shows today's date, I would like to have a command that dates the document 7 days from today.

Also, since I would like to use this as a template, I do not want to manually enter the dates myself. Is this possible?

-
Have you tried the datenumber package? – Bruno Le Floch Feb 5 '11 at 20:57
Thanks. I tried it and it works very well! – user1227 Feb 6 '11 at 18:45

See the datenumber and advdate packages (and the datetime package for formatting options).

Edit: Added small example, essentially stolen from the datenumber documentation.

\documentclass{article}

\usepackage{datenumber}

\begin{document}

\setdatetoday
\setdatebynumber{\thedatenumber}

Today is \today, 7 days from now it's \datedate.

\end{document}

-
It would be very helpful if you include an example (for 7 days from today, as in the question). – Hendrik Vogt Feb 5 '11 at 21:37
\documentclass{article}
\makeatletter
\def\dayinmonth#1{%
\ifcase#1 31\or28\or31\or30\or31\or30
\or31\or31\or30\or31\or30\or31\fi}
\newcommand\Today[1][0]{%
\edef\DiM{\dayinmonth{\the\month}}
\ifnum\day>\DiM
\day=\numexpr \the\day-\DiM\relax
\fi
\today}
\makeatother

\begin{document}

\today -- \Today[30]

\end{document}


the year can also be tested if the month is 13 after increasing

-
NOTE: this solution has not considered a leap day (February 29). :-) – xport Aug 2 '11 at 14:51

It is perhaps worth showing an example using the advdate package, mentioned by Villemoes, as it has a single command solution for this, \DayAfter[n], which prints the date n days ahead and leaves \today unchanged on exit. So for 7 days ahead:

\documentclass{article}
\begin{document}

\today\\
\DayAfter[7]\\
\today\\

\end{document}


gives

     August 2, 2011
August 9, 2011
August 2, 2011


the advdate package also provides separate macros \AdvanceDate to change the value of \today to a number of days ahead together with \SaveDate and \SetDate to save and set the current value used for \today. texdoc advdate gives full details for these and other macros in the package, as usual.

-
Welcome to TeX.sx! A tip: you can use backticks ` to mark your inline code as I did in my edit. – doncherry Aug 2 '11 at 14:43
@don -- Thanks for the helpful comment. I have found and read the meta FAQs for this, e.g. http://meta.tex.stackexchange.com/questions/863/how-do-i-mark-inline-code, and the markdown help files so will be better placed if ever I have another piece of code to share :-) – mas Aug 3 '11 at 11:15