AUTRLUNE.TXT

(5 KB) Pobierz

===================  PLEINES LUNES ET NOUVELLES LUNES ================

     'moon.bas

     'NEW AND FULL MOONS
     '-------------------------------------------
     'APPEARED IN ASTRONOMICAL
     'COMPUTING, SKY & TELE- SCOPE, MARCH, 1985
     '------------------------------------------
     'Rajouts: www.FreeNRG.info
     '*****  PRECISION 3/4 minutes *****
     
     DECLARE SUB InverseJJulien (julian AS LONG, jour AS INTEGER, mois AS INTEGER, annee AS INTEGER)

     DIM julian AS LONG
     DIM jour AS INTEGER, mois AS INTEGER, annee AS INTEGER
     DIM Nomsmois$(12)
     DIM heures AS INTEGER 

     CONST r1 = 3.14159265# / 180
     CONST ecran = 4, imprimante = 5
     CONST FmtOut = "    #### \   \  ##  ##  ##  (\           \)"

     CLS
         OPEN "scrn:" FOR RANDOM AS #ecran
         OPEN "lpt1:" FOR OUTPUT AS #imprimante
         sortie = ecran
         GOSUB init
         INPUT "ANNEE "; y
         PRINT #sortie, ""
         GOSUB calculs
     END

calculs:
        u = 0
        k0 = INT((y - 1900) * 12.3685)
        t = (y - 1899.5) / 100
        t2 = t * t
        t3 = t * t * t
        j0 = 2415020 + 29 * k0
        f0 = .0001178# * t2 - .000000155# * t3
        f0 = f0 + .75933 + .53058868# * k0
        f0 = f0 - .000837 * t - .000335 * t2
        j = j + INT(f)
        f = f - INT(f)
        m0 = k0 * .08084821133#
        m0 = 360 * (m0 - INT(m0)) + 359.2242
        m0 = m0 - .0000333# * t2
        m0 = m0 - .00000347# * t3
        m1 = k0 * .07171366128#
        m1 = 360 * (m1 - INT(m1)) + 306.0253
        m1 = m1 + .0107306# * t2
        m1 = m1 + .00001236# * t3
        b1 = k0 * .08519585128#
        b1 = 360 * (b1 - INT(b1)) + 21.2964
        b1 = b1 - .0016528# * t2
        b1 = b1 - .00000239# * t3
        PRINT #sortie, "    An   Mois    j   h   m"
        FOR k9 = 0 TO 28
           j = j0 + 14 * k9
           f = f0 + .765294 * k9
           k = k9 / 2
           m5 = (m0 + k * 29.10535608#) * r1
           m6 = (m1 + k * 385.81691806#) * r1
           b6 = (b1 + k * 390.67050646#) * r1
           f = f - .4068 * SIN(m6)
           f = f + (.1734 - .000393 * t) * SIN(m5)
           f = f + .0161 * SIN(2 * m6)
           f = f + .0104 * SIN(2 * b6)
           f = f - .0074 * SIN(m5 - m6)
           f = f - .0051 * SIN(m5 + m6)
           f = f + .0021 * SIN(2 * m5)
           f = f + .001 * SIN(2 * b6 - m6)
           f = f + .5
           j = j + INT(f)
           f = f - INT(f)
           IF (u = 0) THEN txt$ = "Nouvelle lune"
           IF (u = 1) THEN txt$ = "Pleine lune"
           julian = j
           xheures = f * 24
           heures = INT(xheures)
           minutes = CINT((xheures - heures) * 60)
           InverseJJulien julian, jour, mois, annee
           PRINT #sortie, USING FmtOut; annee; Nomsmois$(mois); jour; heures; minutes; txt$
           u = u + 1
           IF (u = 2) THEN u = 0
        NEXT
   RETURN

init:
       Nomsmois$(1) = "JANV."
       Nomsmois$(2) = "FEVR."
       Nomsmois$(3) = "MARS "
       Nomsmois$(4) = "AVRIL"
       Nomsmois$(5) = "MAI  "
       Nomsmois$(6) = "JUIN "
       Nomsmois$(7) = "JUIL."
       Nomsmois$(8) = "JUIL."
       Nomsmois$(9) = "SEPT."
       Nomsmois$(10) = "OCT. "
       Nomsmois$(11) = "NOV. "
       Nomsmois$(12) = "DEC. "
    RETURN

'
'
'
'
'
'
      SUB InverseJJulien (julian AS LONG, jour AS INTEGER, mois AS INTEGER, annee AS INTEGER)
         CONST igreg2 = 2299161
         DIM je AS LONG, jd AS LONG, jc AS LONG, jb AS LONG
         DIM jalpha AS LONG, ja AS LONG

          IF (julian >= igreg2) THEN
            jalpha = INT(((julian - 1867216) - .25) / 36524.25)
            ja = julian + 1 + jalpha - INT(.25 * jalpha)
           ELSE
            ja = julian
          END IF
          jb = ja + 1524
          jc = INT(6680& + ((jb - 2439870) - 122.1) / 365.25)
          jd = 365& * jc + INT(.25 * jc)
          je = INT((jb - jd) / 30.6001)
          jour = jb - jd - INT(30.6001 * je)
          mois = je - 1
          IF (mois > 12) THEN mois = mois - 12
          annee = jc - 4715
          IF (mois > 2) THEN annee = annee - 1
          IF (annee <= 0) THEN annee = annee - 1
     END SUB


========================  SORTIES DU PROGRAMME =================

    An   Mois    j   h   m
    2000 DEC.   25  17  24  (Nouvelle lune)
    2001 JANV.   9  20  24  (Pleine lune  )
    2001 JANV.  24  13   6  (Nouvelle lune)
    2001 FEVR.   8   7  12  (Pleine lune  )
    2001 FEVR.  23   8  20  (Nouvelle lune)
    2001 MARS    9  17  24  (Pleine lune  )
    2001 MARS   25   1  24  (Nouvelle lune)
    2001 AVRIL   8   3  22  (Pleine lune  )
    2001 AVRIL  23  15  30  (Nouvelle lune)
    2001 MAI     7  13  53  (Pleine lune  )
    2001 MAI    23   2  47  (Nouvelle lune)
    2001 JUIN    6   1  39  (Pleine lune  )
    2001 JUIN   21  11  56  (Nouvelle lune)
    2001 JUIL.   5  15   4  (Pleine lune  )
    2001 JUIL.  20  19  44  (Nouvelle lune)
    2001 JUIL.   4   5  56  (Pleine lune  )
    2001 JUIL.  19   2  56  (Nouvelle lune)
    2001 SEPT.   2  21  43  (Pleine lune  )
    2001 SEPT.  17  10  27  (Nouvelle lune)
    2001 OCT.    2  13  49  (Pleine lune  )
    2001 OCT.   16  19  21  (Nouvelle lune)
    2001 NOV.    1   5  42  (Pleine lune  )
    2001 NOV.   15   6  39  (Nouvelle lune)
    2001 NOV.   30  20  50  (Pleine lune  )
    2001 DEC.   14  20  49  (Nouvelle lune)
    2001 DEC.   30  10  41  (Pleine lune  )
    2002 JANV.  13  13  30  (Nouvelle lune)
    2002 JANV.  28  22  51  (Pleine lune  )
    2002 FEVR.  12   7  42  (Nouvelle lune)


Zgłoś jeśli naruszono regulamin