Microsoft KB Archive/106690

= Function for Returning a Julian Date in FoxPro =

Article ID: 106690

Article Last Modified on 12/1/2003

-

APPLIES TO


 * Microsoft Visual FoxPro 3.0 Standard Edition
 * Microsoft FoxPro 2.0
 * Microsoft FoxPro 2.5b for MS-DOS
 * Microsoft FoxPro 2.5a
 * Microsoft FoxPro 2.5b for MS-DOS
 * Microsoft FoxPro 2.5b
 * Microsoft FoxPro 2.5a
 * Microsoft FoxPro 2.5b

-



This article was previously published under Q106690



SUMMARY
The 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 INFORMATION
SYS(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 query words: VFoxWin FoxDos FoxWin format

Keywords: kbcode KB106690

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.