Here's a function to calculate Julian Day number for the specified day, month, year. If the year is B.C. it must be negative.

/*  public long uf_JulianDate ( integer ai_Day, integer ai_Month, integer ai_Year )   */
DOUBLE lr_ycorr
LONG ll_Day, ll_Month, ll_Year, ll_ca, ll_cb, ll_RetVal = 0

ll_Day = Long( ai_Day ); ll_Month = Long( ai_Month ); ll_Year = Long( ai_Year );

IF ll_Day > 0 OR ll_Month > 0 OR ll_Year > 0 THEN
IF ll_Year > 0 THEN
lr_ycorr = 0.0
ELSE
lr_ycorr = 0.75
END IF

if ll_Month <= 2 THEN
ll_Year = Long( ll_Year - 1 )
ll_Month = Long( ll_Month + 12 )
END IF

ll_cb = 0

IF ( ( Double( ll_Year ) * Double( 10000.0 ) + Double( ll_Month ) * Double( 100.0 ) + &
Double( ll_Day ) ) >= Double( 15821015.0 ) ) THEN
ll_ca = Long( ll_Year / 100 )
ll_cb = Long( 2 - ll_ca ) + Long( ll_ca / 4 )
END IF

ll_RetVal = Long( Double( 365.25 ) * Double( ll_Year ) - lr_ycorr ) + &
Long( Double( 30.6001 ) * Double( ll_Month + 1 ) ) + &
Long( Double( ll_Day ) + Double( 1720994.5 ) + Double( ll_cb ) )
END IF

RETURN ll_RetVal