Примеры программ на языке QBASIC

DECLARE FUNCTION JD! (Y%, M%, DT!)
DECLARE FUNCTION DifTime! (Y1%, M1%, DT1!, Y2%, M2%, DT2!)
REM Определение интервала времени между двумя датами
REM григорианского календаря : (Y1,M1,DT1) и (Y2,M2,DT2)
CLS
INPUT "Задайте год григорианского календаря : ", Y1%
INPUT "Задайте месяц григорианского календаря : ", M1%
INPUT "Задайте день и время : ", DT1
INPUT "Задайте год григорианского календаря : ", Y2%
INPUT "Задайте месяц григорианского календаря : ", M2%
INPUT "Задайте день и время : ", DT2
PRINT "Интервал = ", DifTime(Y1%, M1%, DT1, Y2%, M2%, DT2)
END

FUNCTION DifTime (Y1%, M1%, DT1, Y2%, M2%, DT2)
' Определение интервала времени между
' двумя григорианскими датами
' Y1,Y2 - годы   M1,M2 - месяцы
' целые части DT1, DT2 - дни
' дробные части DT1, DT2 - время дня
  jd1 = JD(Y1%, M1%, DT1)
  jd2 = JD(Y2%, M2%, DT2)
  DifTime = ABS(jd1 - jd2)
END FUNCTION

FUNCTION JD (Y%, M%, DT)
  DIM a AS INTEGER, b AS INTEGER, mm AS INTEGER, yy AS INTEGER
  DIM c AS LONG
  b = 0
  yy = Y%
  mm = M%
  IF M% < 3 THEN yy = yy - 1: mm = mm + 12
  a = yy \ 100
  IF Y% + M% / 100! + DT / 10000 > 1582.1015# THEN
     b = b + 2 - a + a \ 4
  END IF
  c = INT(365.25 * yy)
  IF yy < 0 THEN c = INT(365.25 * yy - .75)
  JD = c + INT(30.6001 * (mm + 1)) + DT + 1720994.5# + b
END FUNCTION