'===========================================================================
' Subject: JULIAN DATE                        Date: 09-28-98 (20:38)       
'  Author: Leandro Pardini                    Code: QB, QBasic, PDS        
'  Origin: lpardini@cefex.com               Packet: DATETIME.ABC
'===========================================================================
'$STATIC
DEFINT A-Z

DECLARE FUNCTION Julian# (Fecha$, Hora$)

PRINT "Current Julian Date: "; Julian#(DATE$, TIME$)

'====================================================<lpardini@cefex.com>=
' This routine requires that you pass  Date  and  Time  in  the following
' formats:
'
' DATE - MM-DD-YYYY
' TIME - HH:MM:SS
'
' To get current Julian date, call Julian#(DATE$, TIME$).
' "Fecha" and "Hora" means "Date" and "Time" in spanish.
'=========================================================================
FUNCTION Julian# (Fecha$, Hora$)

DM% = VAL(LEFT$(Fecha$, 2))
DD% = VAL(MID$(Fecha$, 4, 2))
DY% = VAL(RIGHT$(Fecha$, 4))

TH% = VAL(LEFT$(Hora$, 2))
TM% = VAL(MID$(Hora$, 4, 2))
TS% = VAL(RIGHT$(Hora$, 2))

JT# = ((TH% * 3600&) + (TM% * 60&) + TS%) / 86400

IF DM% > 2 THEN
   DM% = DM% - 3
ELSE
   DM% = DM% + 9
   DY% = DY% - 1
END IF
  
J1& = FIX(DY% / 100)
J2& = DY% - 100 * J1&

Julian# = FIX((146097 * J1&) / 4) + FIX((1461 * J2&) / 4) + FIX((153 * DM% + 2) / 5) + DD% + 1721119 + JT# - .5

END FUNCTION

