%META:TOPICINFO{author="ChrisBartram" date="1149890616" format="1.1" version="1.1"}% %META:TOPICPARENT{name="Hp3000DateXeqs"}%
parm _numdays
#
# Author: Chris Bartram
#
# Accepts a number of days (between 0 and 30) and creates 3 environment
# variables which specify the date from _numdays back. Each variable is
# in a different format, so it can accomodate programs or scripts that
# want dates in different formats:
#
# backdt1 = mm/dd/yy (i.e. 07/01/99)
# backdt2 = mm/dd/ccyy (i.e. 07/01/1999)
# backdt3 = ccyymmdd (i.e. 19990701)
# backdt4 = yy/mm/dd (i.e. 99/07/01)
# backdt5 = Mmm dd yyyy (i.e. Nov 30 2005)
#
setvar _months "JanFebMarAprMayJunJulAugSepOctNovDec"
IF !_numdays<0 or !_numdays>30 then
echo
echo # Days must be between 0 and 30
echo
ELSE
setvar _day !hpdate-!_numdays
if !_day<1 then
if !hpmonth=1 then
xeq daysof.xeq.sys 12,!hpyyyy-1
else
xeq daysof.xeq.sys !hpmonth-1,!hpyyyy
endif
setvar _day !_daysof+!_day
setvar _month !hpmonth-1
else
setvar _month !hpmonth
endif
if _month<1 then
setvar _month 12
setvar _yy !hpyear-1
setvar _yyyy !hpyyyy-1
else
setvar _yy !hpyear
setvar _yyyy !hpyyyy
endif
if len("!_yy")=1 then
setvar _yy "0!_yy"
endif
setvar backdt1 rht("0!_month",2)+"/"+rht("0!_day",2)+"/!_yy"
setvar backdt2 rht("0!_month",2)+"/"+rht("0!_day",2)+"/!_yyyy"
setvar backdt3 "!_yyyy"+rht("0!_month",2)+rht("0!_day",2)
setvar backdt4 "!_yy/"+rht("0!_month",2)+"/"+rht("0!_day",2)
setvar backdt5 str('!_months',(!_month-1)*3+1,3)+rht(" !_day",3)+" !_yyyy"
deletevar _months
echo !backdt1 !backdt2 !backdt3 !backdt4 !backdt5
ENDIF
-- Main.ChrisBartram - 09 Jun 2006