Function for Returning a Julian Date in FoxPro

Article translations Article translations
Article ID: 106690 - View products that this article applies to.
This article was previously published under Q106690
This article has been archived. It is offered "as is" and will no longer be updated.
Expand all | Collapse all


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.


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 {  /  /  }
   @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


Article ID: 106690 - Last Review: February 28, 2014 - Revision: 2.1
  • 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
kbnosurvey kbarchive kbcode KB106690

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from