Function for Returning a Julian Date in FoxPro

ID: Q106690

2.00 2.50 2.50a 2.50b | 2.50 2.50a 2.50b 3.00

MS-DOS                | WINDOWS

The information in this article applies to:
  • Microsoft Visual FoxPro for Windows, version 3.0
  • Microsoft FoxPro for MS-DOS, version 2.0, 2.5, 2.5a, and 2.5b
  • Microsoft FoxPro for Windows, version 2.5, 2.5a, and 2.5b

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 reference words: VFoxWin 3.00 FoxDos FoxWin 2.00 2.50 2.50a 2.50b format KBCategory: KBSubcategory: FxprgGeneral
Keywords          : kbcode FxprgGeneral 
Version           : 2.00 2.50 2.50a 2.50b | 2.50 2.5
Platform          : MS-DOS WINDOWS


Last Reviewed: May 22, 1998
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.