Here's some code I helped create to get yesterday's date into usable
variables.
It even takes leap year into consideration.

Enjoy!
-Jerod

::Creates time variable
for /f %%z IN ('TIME/T') do set time=%%z

::Creates date variables
for /f "tokens=1-4 delims=/ " %%a IN ('DATE/T') do (
SET day=%%a
SET mm=%%b
SET dd=%%c
SET year=%%d)

::build yesterday date variables
SET ym=%mm%
SET yy=%year%

::Overcome octal issue...
IF %dd% EQU 08 (SET yd=07)&& GOTO PDSET
IF %dd% EQU 09 (SET yd=08)&& GOTO PDSET
IF %dd% EQU 10 (SET yd=09)&& GOTO PDSET

::Overcome 1st of the month issue... 
IF %dd% NEQ 01 (GOTO YDSET)
IF %mm% EQU 01 (SET /A yy=%year%-1&& SET ym=12&& SET yd=31&& GOTO PDSET)
IF %mm% EQU 02 (SET ym=01&& SET yd=31&& GOTO PDSET)
IF %mm% EQU 04 (SET ym=03&& SET yd=31&& GOTO PDSET)
IF %mm% EQU 05 (SET ym=04&& SET yd=30&& GOTO PDSET)
IF %mm% EQU 06 (SET ym=05&& SET yd=31&& GOTO PDSET)
IF %mm% EQU 07 (SET ym=06&& SET yd=30&& GOTO PDSET)
IF %mm% EQU 08 (SET ym=07&& SET yd=31&& GOTO PDSET)
IF %mm% EQU 09 (SET ym=08&& SET yd=31&& GOTO PDSET)
IF %mm% EQU 10 (SET ym=09&& SET yd=30&& GOTO PDSET)
IF %mm% EQU 11 (SET ym=10&& SET yd=31&& GOTO PDSET)
IF %mm% EQU 12 (SET ym=11&& SET yd=30&& GOTO PDSET)

::Do Leap Year Calculations
SET /A yearchk=(%year% %% 4)
IF %yearchk% NEQ 0 (GOTO NOTLEAP)
SET /A yearchk=(%year% %% 400)
IF %yearchk% EQU 0 (GOTO YESLEAP)
SET /A yearchk=(%year% %% 100)
IF %yearchk% EQU 0 (GOTO NOTLEAP)

:YESLEAP
SET ym=02
SET yd=29
GOTO PDSET

:NOTLEAP
SET ym=02
SET yd=28
GOTO PDSET

:YDSET
SET /A pd=%dd%-1
IF %pd% LSS 8 (set yd=0%pd%) else (set yd=%pd%)
:PDSET
::AT THIS POINT YESTERDAY == %ym%\%yd%\%yy%
 

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of John T (Lists)
Sent: Wednesday, April 19, 2006 3:34 PM
To: Declude.JunkMail@declude.com
Subject: RE: [Declude.JunkMail] OT: Help with WinZip command line

In other words, if using the following lines:

for /f "tokens=1-4 delims=/ " %%a IN ('DATE/T') do ( set day=%%a set mm=%%b
set dd=%%c set year=%%d set /A pd=%%c-1)

and running on 04/01/06, is %%c 03/31/06 or 04/00/06 or what?

John T
eServices For You

"Seek, and ye shall find!"


---
This E-mail came from the Declude.JunkMail mailing list.  To
unsubscribe, just send an E-mail to [EMAIL PROTECTED], and
type "unsubscribe Declude.JunkMail".  The archives can be found
at http://www.mail-archive.com.

Reply via email to