%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