December 27, 2006

Another way to calculate date plus or minus n days?

RSS
Subscribe to Windows IT Pro | See More Tips Articles Here | Reprints | Or get the Monthly Online Pass—only $5.95 a month!

I had scripted previous date calculations, some of which are:

8293 » How can I return the date that is plus or minus n days from today?

9977 » How can I calculate the difference between two short dates?

0721 » General purpose date math routine.

I have now scripted PorMdays.bat to return a date in YYYY-MM-DD format that is the result of adding or subtracting n days from a short date, or from TODAY.

The syntax for using PorMdays.bat is:

[call] PorMdays NewYYYY-MM-DD DATEorTODAY +or-NN

Where:

NewYYYY-MM-DD is a call directed numeric environment variable that will contain the resulting YYYY-MM-DD.

DATEorTODAY   is a valid short date, or the literal TODAY.

+or-NN        is the number to add or subtract from DATEorTODAY, like 0, or +1, or -1, or +365.
NOTE: Because NewYYYY-MM-DD is a valid short date, it can be used in subsequent calculations, as in the following silly example:
call PorMdays Thisday today 0
call PorMdays Yesday %Thisday% -1
call PorMdays Tomday %Yesday% +2
@echo Today is %Thisday%, Yesterday was %Yesday%, and Tomorrow is %Tomday%
PorMdays.bat contains:
@echo off
if {%4} NEQ {} @echo Syntax: [call] PorMdays NewYYYY-MM-DD DATEorTODAY +or-NN (call PorMdays YMD today -1)&goto :EOF
if {%3} EQU {} @echo Syntax: [call] PorMdays NewYYYY-MM-DD DATEorTODAY +or-NN (call PorMdays YMD today -1)&goto :EOF
setlocal
if /i "%2" EQU "TODAY" (
 set DT=now
) else (
 set DT="%2"
)
set RND=%RANDOM%
@echo.s=DateAdd("d",%3,%DT%) >"%temp%\%~n0_%RND%.vbs"
@echo.WScript.Echo year(s)^&right(100+month(s),2)^&right(100+day(s),2) >>"%temp%\%~n0_%RND%.vbs"
for /f %%a in ('cscript //nologo "%temp%\%~n0_%RND%.vbs"') do set YYYYMMDD=%%a
del /q "%temp%\%~n0_%RND%.vbs"
set YMD=%YYYYMMDD:~0,4%-%YYYYMMDD:~4,2%-%YYYYMMDD:~6,2%
endlocal&set %1=%YMD%


End of Article



Windows IT Pro Community
Blogs





Top Viewed ArticlesView all articles
WinInfo Short Takes: Week of November 23, 2009

An often irreverent look at some of the week's other news, including some post-PDC some soul searching, a Google Chrome OS announcement and a Microsoft response, Windows 7 off to a supposedly strong start, the Jonas Brothers and Xbox 360, and so much more ...

Command Prompt Tricks

One reader shares his tip for setting up the command prompt to reflect a remote path. ...

2009 Windows IT Pro Editors' Best and Community Choice Awards

Picking a favorite product from an impressive crowd of competitive offerings is never an easy task, and such was the case with our Editors' Best and Community Choice awards this year. ...


Related Events 7 Ways To Get More From Your SharePoint Deployment Now

Check out our list of Free Email Newsletters!

Related Resources Introducing Left-Brain.com, the online IT bookstore
Looking for books, CDs, toolkits, eBooks? Prime your mind at Left-Brain.com

Discover Windows IT Pro eLearning Series!
Clear & detailed technical information and helpful how-to's, all in our trademark no-nonsense format


SQL Server Magazine Office & SharePoint Pro DevProConnections asp.netPRO ITTV
IT Library Technology Resource Directory Connected Home Windows SuperSite
 
 Windows IT Pro is a Division of Penton Media Inc.
 © 2009 Penton Media, Inc.     Terms of Use | Privacy Statement