Hank,
These routines have served me well. Note that they do assume that the current date format is AMERICAN or MDY.
Rick
*** --------------------------------------------------- ***
***
*** These routines convert JULIAN (Day of Year) to Dates.
***
*** date2jul(date) : Date to Julian (DOY) number
***
*** jul2date(int, int) : Year and DOY to Date
***
*** EXAMPLES:
***
*** ? date2jul({1/1/95})
*** ? date2jul(jul2date(1995, 30))
*** ? jul2date(1994, date2jul({12/31/94}))
***
*** --------------------------------------------------- ***
*!*********************************************************
*! Function: DATE2JUL()
*!*********************************************************
FUNCTION date2jul
PARAMETERS zdate
PRIVATE zdate
*
* input zdate (date)
* output date2jul (number)
*
IF !EMPTY(zdate)
RETURN INT(VAL(SYS(11,zdate)) - ;
VAL(SYS(11,'01/01/'+ALLTRIM(STR(YEAR(zdate)))))+1)
ELSE
RETURN 0
ENDIF
*!*********************************************************
*! Function: JUL2DATE()
*!*********************************************************
FUNCTION jul2date
PARAMETERS zyear, zjul
PRIVATE zyear, zjul
*
* input zyear (number)
* zjul (number)
* output jul2date (date)
*
&& zjul is base 1 - have to adjust
RETURN CTOD('01/01/'+STR(zyear))+zjul-1
*** --------------------------------------------------- ***