DATE2BASE:PROCEDURE /* Convert given date to base - number of dates since 1/1/80 */ /* For this we need number of days in years before, plus */ /* date's number within a year */ /* Got func for number - JULIAN() */ ARG DA PARSE VAR DA MM'/'DD'/'YY VR=0 DO I=80 TO YY-1 VR=VR+365 IF LEAP(I) THEN VR=VR+1 END VR=VR+JULIAN(DA)-1 RETURN VR /***GET JULIAN */ JULIAN:PROCEDURE /* Accepts date in US format as parm, return days' number in a year */ ARG DA PARSE VAR DA MM'/'DD'/'YY YY=Y2000(YY) AD='31 28 31 30 31 30 31 31 30 31 30 31' JULA=0 DO I=1 TO MM-1 JULA=JULA+WORD(AD,I) END IF I>2 & LEAP(YY) THEN JULA=JULA+1 JULA=JULA+DD RETURN JULA /***GET Y2000 */ Y2000:PROCEDURE /* Convert year in 4 digit format */ ARG YY IF LENGTH(YY)=2 THEN DO IF YY>80 THEN YY='19'YY ELSE YY='20'YY END RETURN YY /***GET LEAP */ LEAP:PROCEDURE /* Return 1 if parm is leap year */ ARG YY IF LENGTH(YY)=2 THEN DO IF YY>80 THEN YY='19'YY ELSE YY='20'YY END RETURN (YY%4*4=YY)