Function for Returning a Julian Date in FoxProLast reviewed: April 29, 1996Article ID: Q106690 |
The information in this article applies to:
SUMMARYThe FoxPro functions SYS(1) and SYS(11) return a Julian day number, which is different from a Julian date. To return a Julian date, you can write a user-defined function (UDF), as described below.
MORE INFORMATIONSYS(1) and SYS(11) return a date according to the Julian calendar, in which each day is counted, with day 1 being in 4713 B.C. On the other hand, a Julian date is a date represented by a five-digit number, the first two digits being the last two digits of the year, and the final three digits being the number of days that have elapsed since January 1 of that year. For example, 01/01/93 according to the Julian calendar is 2448989, whereas the Julian date is 93001. The following program calls a UDF that converts a date in FoxPro date format to a Julian date.
* Begin program @1,1 SAY "Enter a date" GET testdate DEFAULT { / / } READ @2,1 SAY "The Julian Date of "+ DTOC(testdate) + " is " ; + TRANSFORM(julian(testdate),'99999') *End program FUNCTION julian PARAMETER tdate *isolate the year and convert it to a string cYear = RIGHT(DTOC(tdate),2) firstjan = CTOD("01/01/" + cYear) *calculate the sequential number of the day jday = tdate-firstjan+1 *position the year at the two leftmost digits nYear = VAL(cYear) * 1000 *combine year and day number jdate = nYear + jday RETURN jdate *End Function julian |
Additional reference words: VFoxWin 3.00 FoxDos FoxWin 2.00 2.50 2.50a
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |