10 REM Titre : Le calendrier hébraïque 11 REM Auteur : Roger STIOUI 12 REM Editeur : Les Editions Colbo / 3, rue Richier / 75009 Paris 13 REM (c) 1988 ISBN 2-85332-060-X 14 REM 259 pages 15 REM Code tapé en QBASIC MS-DOS par Jean-Daniel GREUB-HIRSCH en mars 1997 16 REM Adresse E-Mail et site Internet 17 REM greubjd@gmail.com [[ancienne adresse : greub-j-d@bal.ge-dip.etat-ge.ch]] 18 REM www.ordiecole.com [[ancienne adresse : http://www.planet.ch/~ordi-ecole]] 50 REM Remplacé les PRINT #IP par des PRINT pour éviter des problèmes 51 REM Remplacé les COM par des COMM pour éviter des problèmes 52 REM ligne 130 border 3 110 'I N I T I A L I S A T I 0 N 120 ' 130 SCREEN 0: COLOR 15: CLS 140 DIM J$(100), MC$(100), MH$(100), TP$(100), D$(100), JMC(100), F$(1000), JMH(100), FF$(100), FH$(100) 150 J$(1) = "Dimanche": J$(2) = "Lundi ": J$(3) = "Mardi " 160 J$(4) = "Mercredi": J$(5) = "Jeudi ": J$(6) = "Vendredi" 170 J$(7) = "Chabbat " 180 MC$(1) = "janvier ": MC$(2) = "février ": MC$(3) = "mars " 190 MC$(4) = "avril ": MC$(5) = "mai ": MC$(6) = "juin " 200 MC$(7) = "juillet ": MC$(8) = "août ": MC$(9) = "septembre" 210 MC$(10) = "octobre ": MC$(11) = "novembre " 220 MC$(12) = "décembre " 230 MH$(1) = " Tichri ": MH$(2) = " Hechvan": MH$(3) = " Kislev " 240 MH$(4) = " Tévet ": MH$(5) = " Chevat ": MH$(6) = " Adar I " 250 MH$(7) = " Adar II": MH$(8) = " Nissan ": MH$(9) = " Iyar " 260 MH$(10) = " Sivan ": MH$(11) = " Tamouz " 270 MH$(12) = " Av ": MH$(13) = " Eloul " 280 TP$(1) = " CONVERSION DATE CIVILE --> DATE HEBRAIQUE" 290 TP$(2) = " CONVERSION DATE HEBRAIQUE --> DATE CIVILE" 300 TP$(3) = " CALCUL DES 4 TEKOUFOT D'UNE ANNEE" 310 TP$(4) = " CALCUL D'UN MOLAD" 320 TP$(5) = " CYCLE LUNAIRE, SOLAIRE, CHEMITA, TYPE DE L'ANNEE, DATE DES FETES JUIVES": PG$ = " PROGRAMME " 330 TP$(6) = " DETERMINATION DES RACHE-'HODACHIM " 340 TP$(7) = " CALENDRIER CIVIL --> CALENDRIER HEBRAIQUE" 350 TP$(8) = " CALENDRIER HEBRAIQUE --> CALENDRIER CIVIL" 360 D$(1) = "TICHRI": D$(2) = "TEVET": D$(3) = "NISSAN" 370 D$(4) = "TAMOUZ": D$(5) = " ENTRER UNE DATE :" 380 F$(1) = " ROCH-HACHANA---": F$(2) = " JEUNE GUEDALIA-" 390 F$(3) = " KIPPOUR -------": F$(4) = " SOUCCOT ------" 400 F$(5) = " HANOUCA ------": F$(6) = " JEUNE 10 TEVET-" 410 F$(7) = " TOU BICHEVAT---": F$(8) = " JEUNE D'ESTHER-" 420 F$(9) = " POURIM --------": F$(10) = " PESSA'H--------" 430 F$(11) = " LAG BA'OMER----": F$(12) = " CHAVOU'OT---- -" 440 F$(13) = " JEUNE 17 TAMOUZ": F$(14) = " JEUNE DU 9 AV--" 450 F$(15) = " TOU BEAV ------": F$(16) = " 'HANOUCA----" 460 FF$(1) = "ROCH-HODECH ": FF$(2) = "HOL-HAMOED " 470 FF$(3) = "TOU BICHVAT ": FF$(4) = "LAG BA'OMER-": FF$(5) = "TOU BEAV----" 480 FF$(6) = "POURIM KAT. ": FF$(7) = "PESSAH CHENI" 490 FF$(8) = "CH.CHEKALIM*": FF$(9) = "CH.ZAKHOR***": FF$(10) = "CH.PARA*****": FF$(11) = "CH.HAHODECH*" 500 FF$(12) = "CH.HAGADOL**" 510 FF$(13) = "CH.CHOUVA***": FF$(14) = "POURIM CHO. " 520 F$(21) = "HOCHAANA RABBA-": F$(22) = "CHEMINI ATSERET": F$(23) = "SIMHAT TORAH---": F$(25) = "JEUNE 1ERS NES-" 530 F$(51) = "Berèchit***": F$(52) = "Noa'h******": F$(53) = "Lekh-Lekha*": F$(54) = "Vayèra*****": F$(55) = "Hayè-Sarah" 540 F$(56) = "Toledot****": F$(57) = "Vayètsè****": F$(58) = "Vayichla'h*": F$(59) = "Vayèchev***": F$(60) = "Mikets*****" 550 F$(61) = "Vayigache**": F$(62) = "Vay'hi*****": F$(63) = "Chemot*****": F$(64) = "Vaèra******": F$(65) = "Bo*********" 560 F$(66) = "Bechalla'h*": F$(67) = "Yitro******": F$(68) = "Michpatim**": F$(69) = "Terouma****": F$(70) = "Tetsavé****" 570 F$(71) = "Ki-Tissa***": F$(72) = "Vayakhel***": F$(73) = "Pekoudè****": F$(74) = "Vayikra****": F$(75) = "Tsav*******" 580 F$(76) = "Chemini****": F$(77) = "Tazria'****": F$(78) = "Metsora'***": F$(79) = "A'harè-Mot ": F$(80) = "kedochim***" 590 F$(81) = "Emor*******": F$(82) = "Behar******": F$(83) = "Be'houkotai": F$(84) = "Bemidbar***": F$(85) = "Nasso******" 600 F$(86) = "Behaalotkha": F$(87) = "Chelah-Leha": F$(88) = "Kora'h*****": F$(89) = "Houkat****": F$(90) = "Balak******" 610 F$(91) = "Pin'has****": F$(92) = "Mattot*****": F$(93) = "Mass'è*****": F$(94) = "Devarim****": F$(95) = "Vaet'hannan" 620 F$(96) = "'Ekev******": F$(97) = "Réèh*******": F$(98) = "Choftim****": F$(99) = "Ki-Tétsè***": F$(100) = "Ki-Tavo****" 630 F$(101) = "Nitsavim***": F$(102) = "Vayèlekh***" 635 F$(103) = "Haazinou***": F$(104) = "V.Haberakha" 636 F$(50) = F$(103): F$(49) = F$(102) 640 JMH(1) = 30: JMH(4) = 29: JMH(5) = 30: JMH(6) = 30: JMH(7) = 29 650 JMH(8) = 30: JMH(G) = 29: JMH(10) = 30 660 JMH(11) = 29: JMH(12) = 30: JMH(13) = 29 670 JMC(1) = 31: JMC(3) = 31: JMC(4) = 30: JMC(5) = 31: JMC(6) = 30 680 JMC(7) = 31: JMC(8) = 31: JMC(9) = 30 690 JMC(10) = 31: JMC(11) = 30: JMC(12) = 31 700 'S A I S I E E T A F F I C H A G E 710 ' 720 PRINT " LE CALENDRIER HEBRAIQUE - Roger STIOUI - ISBN 2-85332-060-X" 722 PRINT " (c) 1988 Les Editions Colbo - 3, rue Richer - Paris 9e" 725 PRINT : PRINT " Taper pour QUITTER, une autre touche pour CONTINUER" 730 A$ = INKEY$: IF A$ = "" THEN 730 735 IF ASC(A$) = 57 THEN IP = 0 ELSE IP = 8 740 IF ASC(A$) = 27 THEN CLS : PRINT " Roger STIOUI vous dit : 'Shalom'": PRINT 741 IF ASC(A$) = 27 THEN PRINT " Code tapé pour vous par Jean-Daniel Greub-Hirsch (mars 1997)" 742 IF ASC(A$) = 27 THEN PRINT " E-Mail : greub-j-d@bal.ge-dip.etat-ge.ch" 743 IF ASC(A$) = 27 THEN PRINT " http://www.planet.ch/~ordi-ecole": END 745 PRINT 750 FOR X = 1 TO 8 760 PRINT X; TP$(X) 770 NEXT X 779 REM 780 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 780 PRINT 790 INPUT " TAPER UN CHIFFRE ENTRE 1 ET 8 : ", X 795 IF X < 1 OR X > 8 THEN 790 800 REM INPUT X 810 ON X GOTO 920, 1040, 1150, 1410, 1540, 2160, 5520, 5870 'Aigu 820 GOTO 800 830 ' 840 'R E T 0 U R A U M E N U 850 X$ = INKEY$ 860 IF X$ = " " OR X$ = CHR$(27) OR X$ = CHR$(13) THEN GOTO 880 865 'Attente barre d'espace (ou return, ou ESC) 870 GOTO 850 880 CLS : GOTO 720 'Pour nouvelle saisie 890 ' 900 'C 0 N V E R S I 0 N C I V I L -> H E B R A I Q U E 910 ' 920 CLS : PRINT PG$; "1 : "; TP$(1): PRINT 930 GOSUB 2550 'Demande la date civile 940 IF AC = 1582 THEN GOTO 4330 'Correct. Julien-Grégorien 950 IF MC > 8 THEN AC = AC + 1 'Au-delà du mois d'août 960 AH = AC + 3760 'Année hébraïque 970 GOSUB 3970 'Caractéristiques complètes 980 GOSUB 4460 'Intervalle civil, puis hébr. 990 PRINT QCC; MC$(MCC); ACC; " = "; J$(J); QH; MH$(MH); AH 1000 GOTO 850 'Retour au menu 1010 ' 1020 'C 0 N V E R S I 0 N H E B R A I Q U E -> C I V I L 1030 ' 1040 CLS : PRINT PG$; "2 : "; TP$(2): PRINT 1050 GOSUB 2440 'Demande la date hébraïque 1060 GOSUB 3970 'Caractéristiques complètes 1070 IF MOIS = 12 AND MH = 7 THEN GOTO 3130 'Date erronée ? 1080 GOSUB 4910 'Intervalle hébr. puis civil 1090 IF AC = 1582 THEN GOSUB 4390 'Julien / Grégorien 1100 PRINT QHH; MH$(MHH); AHH; " = "; J$(J); QC; MC$(MC); AC 1110 GOTO 850 'Retour au menu 1120 ' 1130 'D E T E R M I N E L E S 4 T E K 0 U F 0 T 1140 ' 1150 CLS : PRINT PG$; "3 : "; TP$(3): PRINT 1160 GOSUB 2490 'Demande l'année juive 1170 ACC = AC 1180 PRINT AH 1190 FOR TK = 1 TO 4 'Pour les 4 Tékoufot 1200 AC = ACC 1210 GOSUB 3970 'Caractéristiques complètes 1220 CYS = INT((AH - 1) / 28) 'Cycles solaires écoulés 1230 X = (AH - 1 - 28 * CYS) * 30 + 96 'Nbr. d'heures ds dernier cycle 1240 HTK = X - 24 * INT(X / 24) - 28.5 + TK * 7.5 'Heure de la Tékoufa 1250 MC = 4: QC = DCTN - 273 + TK * 91 'Tek. Tichri / à avril 1260 IF HTK < 0 THEN QC = QC - 1: HTK = HTK + 24 'Jour précédent 1270 IF HTK > 24 THEN QC = QC + 1: HTK = HTK - 24 'Jour suivant 1280 PRINT " TEKOUFA DE "; D$(TK) 1290 GOSUB 4460 'Dates hébraïque et civile 1300 PRINT J$(J); QH; TAB(14); MH$(MH); TAB(22); AH; TAB(28); HTK; "heures" 1310 GOSUB 4910 'Intervalle hébr. puis civil 1320 PRINT J$(J); QC; TAB(14); MC$(MC); TAB(22); AC 1330 PRINT 1340 NEXT TK 'Tékoufa suivante 1350 PRINT " Heures de la montre, avec changement de date à minuit" 1355 PRINT " pour les deux calendriers" 1360 GOTO 850 'Attente barre "ESPACE" 1370 ' 1380 ' 1390 'C A L C U L D E S M 0 L A D 0 T 1400 ' 1410 CLS : PRINT PG$; "4 : "; TP$(4): PRINT 1420 GOSUB 2470 'Demande la date juive 1430 GOSUB 2900 'Caractéristiques partielles 1440 IF MOIS = 12 AND MH = 7 THEN GOTO 3130 'Date erronée ? 1450 IF MOIS = 12 AND MH > 7 THEN MH = MH - 1 'Pour année com. 1460 HL = MOLTI + (MH - 1) * 765433! - 6480 'Molad en 'halakim 1470 GOSUB 3360 'Conversion 1480 PRINT "MOLAD DE "; MH$(MH); AH: PRINT 1490 PRINT J$(J); HR; "heures"; MN; "minutes"; " et"; HL; "'halakim": PRINT 1500 GOTO 1350 'Affichage d'un commentaire 1510 ' 1520 'D E T E R M I N E L E S F E T E S 1530 ' 1540 CLS : PRINT PG$; "5 : "; TP$(5): PRINT 1550 GOSUB 2490 'Demande l'année juive 1560 PRINT AH 1570 CYL = INT((AH - 1) / 19): X = AH - 19 * CYL 1580 PRINT X; "ème année du"; CYL; "ème cycle lunaire" 1590 PRINT 1600 CYS = INT((AH - 1) / 28): X = AH - 28 * CYS 1610 PRINT X; "ème année du"; CYS; "ème cycle solaire" 1620 PRINT 1630 CH = INT((AH - 1) / 7): X = AH - 7 * CH 1640 PRINT X; "ème année du"; CH; "ème cycle de Chemita" 1650 PRINT 1660 GOSUB 3970 'Caract. année civile et juive 1670 PRINT " TYPE DE L'ANNEE :"; RO; H; K; NIS + MOIS - 12; TAB(37); MOIS; "mois" 1680 PRINT 1690 XX = 1: QH = 1: MH = 1 'Roch-Hachana 1700 GOSUB 2090 'Calcul et affichage 1710 QH = 3 'Jeûne de Guédalia 1720 GOSUB 2060 'Report éventuel à dimanche 1730 QH = 10 'Kippour 1740 GOSUB 2090 'Calcul et affichage 1750 QH = 15 'Souccot 1760 GOSUB 2090 'Calcul et affichage 1770 QH = 25: MH = 3 'Hanouca 1780 GOSUB 2090 'Calcul et affichage 1790 QH = 10: MH = 4 'Jeûne du 10 Tévet 1800 GOSUB 2060 'Report éventuel à dimanche 1810 QH = 15: MH = 5 'Tou Bichevat 1820 GOSUB 2090 'Calcul et affichage 1830 QH = 13: MH = 6 + MS 'Jeûne d'Esther 1840 GOSUB 2030 'Avancé éventuellement à jeudi 1850 QH = 14 'Pourim 1860 GOSUB 2060 'Report éventuel à dimanche 1870 QH = 15: MH = 8 'Pessa'h 1880 GOSUB 2090 'Calcul et affichage 1890 QH = 18: MH = 9 'Pessa'h Chèni, Lag Ba'omer 1900 GOSUB 2090 'Calcul et affichage 1910 QH = 6: MH = 10 'Chavou'ot 1920 GOSUB 2090 'Calcul et affichage 1930 QH = 17: MH = 11 'Jeûne du 17 Tamouz 1940 GOSUB 2060 1950 QH = 9: MH = 12 'Jeûne du 9 Av 1960 GOSUB 2060 1970 QH = 15 1980 GOSUB 2090 'Calcul et affichage 1990 GOTO 850 2000 ' 2010 'LE JEUNE CHABBAT, AVANCE A JEU. OU REPORTE A DIM. 2020 ' 2030 GOSUB 4910 2040 IF J = 7 THEN QH = QH - 2 'Avancé 2050 AC = AH - 3760 2060 GOSUB 4910 2070 IF J < 7 THEN GOTO 2100 2080 QH = QH + 1: AC = AH - 3760 'Reporté à dimanche 2090 GOSUB 4910 'Intervalle hébr. / civil 2100 PRINT F$(XX); " "; J$(J); " "; QC; TAB(31); MC$(MC); AC 2110 AC = AH - 3760: XX = XX + 1 2120 RETURN 2130 ' 2140 'R A C H E - 'H 0 D A C H I M 2150 ' 2160 CLS : PRINT PG$; "6 : "; TP$(6): PRINT 2170 GOSUB 2480 'Demande l'année juive 2180 PRINT AH 2190 GOSUB 3970 'Caractéristiques complètes 2200 MH = 1: QH = 1: F$ = " ROCH-HACHANA" '1er jour de Roch-Hachana 2210 GOSUB 2360 2220 QH = 2 '2ème jour de Roch-Hachana 2230 GOSUB 2360 2240 GOTO 2310 2250 QH = 1 '1er jour du mois 2260 IF MH = 7 AND MOIS = 12 THEN MH = 8 'Nissan 2270 F$ = MH$(MH) 2280 GOSUB 2360 2290 IF (MH = 2 AND H = 29) OR (MH = 3 AND K = 29) OR MH = 4 OR (MOIS = 12 AND MH = 6) OR MH = 7 OR MH = 9 OR MH = 11 OR MH = 13 THEN GOTO 2330 2300 'Les mois de 29j suivis d'un jour de Roch-'Hodech 2310 QH = 30: F$ = MH$(MH + 1) 2320 GOSUB 2360 2330 MH = MH + 1 2340 IF MH = 14 GOTO 850 2350 GOTO 2250 2360 GOSUB 4910 2370 PRINT F$; TAB(14); " : "; J$(J); " "; QC; TAB(32); MC$(MC); AC 2380 AC = AH - 3760 2390 RETURN 2400 ' 2410 ' 2420 'DEMANDE DE LA DATE HEBRAIQUE A L'UTILISATEUR 2430 ' 2440 PRINT D$(5): PRINT 2450 INPUT " JOUR DU MOIS (1-30) : "; QH 2460 PRINT : QHH = QH 2470 PRINT " TICHRI = 1 HECHVAN = 2 KISLEV = 3 TEVET = 4" 2471 PRINT " CHEVAT = 5 ADAR I = 6 ADAR II = 7 NISSAN = 8" 2472 PRINT " IYAR = 9 SIVAN = 10 TAMOUZ = 11 AV = 12" 2473 PRINT " ELOUL = 13": PRINT 2474 INPUT " MOIS HEBRAIQUE (1-13) : "; MH 2480 PRINT : MHH = MH 2490 INPUT " ANNEE HEBRAIQUE : "; AH 2500 PRINT : AC = AH - 3760: AHH = AH 2510 RETURN 2520 ' 2530 'DEMANDE LA DATE CIVILE A L'UTILISATEUR 2540 ' 2550 PRINT D$(5): PRINT 2560 INPUT " JOUR DU MOIS (1-31) : "; QC 2570 PRINT : QCC = QC 2580 INPUT " MOIS CIVIL (1-12) : "; MC 2590 PRINT : MCC = MC 2600 INPUT " ANNEE CIVILE : "; AC 2610 PRINT : AH = AC + 3760: ACC = AC 2620 RETURN 2630 ' 2640 'DEMANDE LA DATE LIMITE 2650 ' 2660 PRINT : INPUT " A PARTIR DE QUEL MOIS : "; MO 2670 IF MO = 0 THEN MO = 1 2680 PRINT : INPUT " JUSQU'A QUEL MOIS : "; ML 2690 IF ML = 0 THEN ML = 13 2700 PRINT : JO = 0: INPUT " POUR OBTENIR LE 1ER JOUR DES MOIS DE L'ANNEE, TAPER 1 : ", JO 2710 PRINT : INPUT " POUR LE CALENDRIER D'UNE SUITE D'ANNEES , ENTRER L'ANNEE LIMITE "; AL 2720 RETURN 2730 ' 2740 ' 2750 ' 2760 'CARACTERISTIQUES COMPLETES DE L'ANNEE JUIVE 2770 ' 2780 AH = AH + 1 2790 GOSUB 2900 2800 ROS = J: AH = AH - 1 2810 GOSUB 2900 2820 RO = J 2830 GOSUB 3300 2840 GOSUB 3850 2850 RETURN 2860 ' 2870 ' 2880 'CARACTERISTIQUES PARTIELLES DE L'ANNEE JUIVE 2890 ' 2900 GOSUB 3190 2910 GOSUB 2990 2920 GOSUB 3250 2930 GOSUB 3540 2940 RETURN 2950 ' 2960 ' 2970 'POSITION DE L'ANNEE 2980 ' 2990 CYL = INT((AH - 1) / 19) 3000 REST = AH - 1 - 19 * CYL 3010 IF REST < 19 THEN EMB = 6 3020 IF REST < 17 THEN EMB = 5 3030 IF REST < 14 THEN EMB = 4 3040 IF REST < 11 THEN EMB = 3 3050 IF REST < 8 THEN EMB = 2 3060 IF REST < 6 THEN EMB = 1 3070 IF REST < 3 THEN EMB = 0 3080 COMM = REST - EMB 'COMM=Communes , EMB=Embolism. 3090 RETURN 3100 ' 3110 'DEMANDE D'UNE DATE ERRONEE 3120 ' 3130 PRINT " CETTE DATE N'EXISTE PAS, L'ANNEE EST COMMUNE" 3140 GOTO 850 'Attente barre "ESPACE" 3150 ' 3160 ' 3170 'L'ANNEE EST-ELLE EMBOLISMIQUE ? 3180 ' 3190 X = AH - (INT(AH / 19) * 19): MH$(6) = " Adar I "'dern. cycle 3200 IF X = 0 OR X = 3 OR X = 6 OR X = 8 OR X = 11 OR X = 14 OR X = 17 THEN MOIS = 13 ELSE MOIS = 12: MH$(6) = "Adar " 3210 RETURN 3220 ' 3230 'CALCUL DU MOLAD DE TICHRI 3240 ' 3250 MOLTI = 69715! * CYL + 113196! * COMM + 152869! * EMB + 57444!: HL = MOLTI 3260 GOTO 3360 'Conversion 3270 ' 3280 'CALCUL DU MOLAD DE NISSAN 3290 ' 3300 MOLNI = MOLTI + 56598!: HL = MOLNI 3310 RETURN 3320 ' 3330 'CONVERSION DE 'HALAKIM EN (SEM) SEMAINES,(J) JOURS 3340 '(HR) HEURES,(MN) MINUTES,(HL) 'HALAKIM 3350 ' 3360 MN = INT(HL / 18): HL = HL - 18 * MN: HR = INT(MN / 60) 3370 MN = MN - 60 * HR: J = INT(HR / 24): HR = HR - 24 * J 3380 SEM = INT(J / 7): J = J - 7 * SEM 3390 'CONVERSION PARTIELLE 3400 IF J < 1 THEN J = J + 7 3410 IF J > 7 THEN J = J - 7 3420 RETURN 3430 ' 3440 'ROCH-HACHANA REPORTE AU LENDEMAIN 3450 ' 3460 IF J = 2 OR J = 3 OR J = 5 OR J = 7 THEN RETURN 'Sans report 3470 J = J + 1 'Report au lendemain 3480 GOSUB 3400 'Conversion partielle 3490 V = 1 'Report effectué 3500 RETURN 3510 ' 3520 'FIXATION DU JOUR DE ROCH-HACHANA 3530 ' 3540 V = 0 3550 GOSUB 3460 'Report ? 3560 IF V = 1 THEN RETURN 'Report déjà 3570 IF HR < 18 GOTO 3610 'Molad non 1 3580 J = J + 1 'Roch-Hachan 3590 GOSUB 3400 3600 GOTO 3460 3610 IF MOIS = 13 THEN RETURN 3620 MOLAD = HR * 1080 + MN * 18 + HL 3630 IF J = 3 GOTO 3680 3640 IF J = 2 GOTO 3730 3650 RETURN 3660 ' 3670 'MOLAD MARDI < 9 H 204 'HALAKIM 3680 IF MOLAD < 9924 THEN RETURN 3690 J = 5 3700 RETURN 3710 ' 3720 'MOLAD LUNDI < 15 H 589 'HALAKIM 3730 IF MOLAD < 16789 THEN RETURN 3740 ' 3750 AH = AH - 1 3760 GOSUB 3190 3770 IF MOIS = 13 THEN J = 3 3780 AH = AH + 1 3790 GOSUB 3190 3800 RETURN 3810 ' 3820 ' 3830 'ROCH-'HODECH NISSAN , JOURS DE 'HECHVAN ET KISLEV 3840 ' 3850 IF ROS <= RO THEN ROS = ROS + 7 3860 U = ROS - RO: H = 29: K = 30 'U=Interv. entre Rachè-Hachanim 3870 IF MOIS = 12 THEN U = U + 2 3880 IF U = 5 THEN NIS = RO + MOIS - 11: K = 29 'Mois 29 jours 3890 IF U = 6 THEN NIS = RO + MOIS - 10 'Mois 29 et 30 jours 3900 IF U = 7 THEN NIS = RO + MOIS - 9: H = 30 'Mois de 30 jours 3910 IF NIS > 7 THEN NIS = NIS - 7 3920 RETURN 3930 ' 3940 'CARACTERISTIQUES COMPLETES DES ANNEES 3950 'CIVILES ET HEBRAIQUES 3960 ' 3970 GOSUB 4210 3980 GOSUB 2780 3990 GOSUB 4040 4000 RETURN 4010 ' 4020 'DATE JUIVE DE LA TEKOUFA DE NISSAN 4030 ' 4040 RS = CYL * 1565 + COMM * 282084! - EMB * 483349! - 191802!'Retard sol. 4050 MS = MOIS - 12: HL = MOLNI + RS 4060 GOSUB 3360 'Conversion 4070 JTKN = J: HL = RS 'Jour de la Ték. de Nissan 4080 GOSUB 3360 'Conversion 4090 IF J = 7 THEN SEM = SEM - 1 4100 IF SEM < 0 THEN SEM = 0 4110 QRS = J + 7 * SEM: J = NIS + QRS - 1 - INT(QRS / 7) * 7 4120 GOSUB 3400 4130 JRS = J 4140 IF JTKN < JRS THEN JRS = JRS - 7 4150 IF (JTKN - JRS) > 4 THEN JRS = JRS + 7 4160 DHTN = QRS + JTKN - JRS 4170 RETURN 4180 ' 4190 'ANNEE BISSEXTILE ? 4200 ' 4210 FEV = 28: Z = 28 'FEV=Jours de février 4220 IF AC = INT(AC / 4) * 4 THEN FEV = 29: Z = 29 'Année biss. 4230 IF AC = INT(AC / 100) * 100 THEN FEV = 28 'Séculaire com 4240 IF AC = INT(AC / 400) * 400 THEN FEV = 29 'Année biss. 4250 DCTN = 34 - FEV + INT((AC - 1701) / 100) 'Années séculaires 4260 DCTN = DCTN - INT((AC - 1601) / 400) 'Cycles de 400 ans 4270 IF AC < 1700 THEN DCTN = 33 - FEV 'Tékoufa avant 1700 4280 IF AC < 1583 THEN DCTN = 23 - Z: FEV = Z 'Tékoufa av. 1583 4290 RETURN 4300 ' 4310 'CORRECTIONS DU CALENDRIER JULIEN / GREGORIEN 4320 ' 4330 IF MC = 10 AND QC > 4 AND QC < 15 THEN PRINT "CETTE DATE N'EXISTE PAS DANS LE CALENDRIER GREGORIEN": GOTO 850 4340 IF MC = 9 OR (MC = 10 AND QC < 5) THEN QC = QC + 10 4350 GOTO 950 4360 IF MC = 9 OR (MC = 10 AND QC < 5) THEN QC = QC + 10 4370 IF MC = 10 AND QC = 5 THEN QC = 15: QCC = 15 4380 RETURN 4390 IF (MC = 9 AND QC > 26) OR (MC = 10 AND QC < 15) THEN QC = QC - 10 4400 IF QC < 1 THEN QC = QC + 30: MC = MC - 1 4410 RETURN 4420 ' 4430 'INTERV ENTRE UNE DATE ET LA DATE CIV. DE LA TEKOUFA 4440 'DE NISSAN , TRANSPOSEE SUR LE CALENDRIER HEBRAIQUE 4450 ' 4460 IF MC = 9 THEN IC = -184 - FEV 'Septembre 4470 IF MC = 10 THEN IC = -154 - FEV 4480 IF MC = 11 THEN IC = -123 - FEV 4490 IF MC = 12 THEN IC = -93 - FEV 4500 IF MC = 1 THEN IC = -62 - FEV 4510 IF MC = 2 THEN IC = -31 - FEV 4520 IF MC = 3 THEN IC = -31 4530 IF MC = 4 THEN IC = 0 'Avril 4540 IF MC = 5 THEN IC = 30 4550 IF MC = 6 THEN IC = 61 4560 IF MC = 7 THEN IC = 91 4570 IF MC = 8 THEN IC = 122 'Août 4580 IC = IC + QC - DCTN: IH = 106 + MOIS + H + K + DHTN 4590 ICH = IC + IH 'Retard solaire 4600 J = ICH - (INT(ICH / 7) * 7) + RO - 1 'Jour de la semaine 4610 GOSUB 3400 'Conversion partielle 4620 JAH = 295 + 30 * MS + H + K 'Jours de l'année juive 4630 IF ICH > JAH THEN GOTO 4820 4640 IF ICH <= JAH THEN MH = 13: JAH = JAH - 29 'Eloul 4650 IF ICH <= JAH THEN MH = 12: JAH = JAH - 30 4660 IF ICH <= JAH THEN MH = 11: JAH = JAH - 29 4670 IF ICH <= JAH THEN MH = 10: JAH = JAH - 30 4680 IF ICH <= JAH THEN MH = 9: JAH = JAH - 29 4690 IF ICH <= JAH THEN MH = 8: JAH = JAH - 30 4700 IF ICH <= JAH THEN MH = 7: JAH = JAH - 29 * MS 'Adar II 4710 IF ICH <= JAH THEN MH = 6: JAH = JAH - 29 - MS 4720 IF ICH <= JAH THEN MH = 5: JAH = JAH - 30 4730 IF ICH <= JAH THEN MH = 4: JAH = JAH - 29 4740 IF ICH <= JAH THEN MH = 3: JAH = JAH - K 4750 IF ICH <= JAH THEN MH = 2: JAH = JAH - H 4760 IF ICH <= JAH THEN MH = 1: JAH = JAH - 30 'Tichri 4770 QH = ICH - JAH: IF QH > 0 THEN RETURN 4780 AH = AH - 1 4790 GOSUB 2780 'Caract. de l'année précédente 4800 MS = MOIS - 12: ICH = ICH + 295 + 30 * MS + H + K 4810 GOTO 4600 4820 AH = AH + 1 4830 GOSUB 2780 'Caract. de l'année suivante 4840 ICH = ICH - JAH 4850 GOTO 4600 4860 ' 4870 ' 4880 'INTERV ENTRE UNE DATE ET LA DATE HEB. DE LA TEKOUFA 4890 'DE NISSAN , TRANSPOSEE SUR LE CALENDRIER CIVIL 4900 ' 4910 IF MH = 1 THEN IH = -118 - K - H - MS 'Tichri 4920 IF MH = 2 THEN IH = -88 - K - H - MS 4930 IF MH = 3 THEN IH = -88 - K - MS 4940 IF MH = 4 THEN IH = -88 - MS 4950 IF MH = 5 THEN IH = -59 - MS 4960 IF MH = 6 THEN IH = -29 - MS 4970 IF MH = 7 THEN IH = 0 4980 IF MH = 8 THEN IH = 29 * MS 'Nissan 4990 IF MH = 9 THEN IH = 29 * MS + 30 5000 IF MH = 10 THEN IH = 29 * MS + 59 5010 IF MH = 11 THEN IH = 29 * MS + 89 5020 IF MH = 12 THEN IH = 29 * MS + 118 5030 IF MH = 13 THEN IH = 29 * MS + 148 'Eloul 5040 IH = IH + QH - DHTN + MS: IC = 184 + FEV + DCTN - MS 5050 IHC = IH + IC 5060 GOSUB 4210 5070 JAC = 337 + FEV: Y = 0 5080 IF IHC >= JAC THEN IHC = IHC - JAC: AC = AC + 1: Y = 1 5090 IF Y = 1 THEN GOTO 5060 5100 IF IHC <= JAC THEN MC = 8: JAC = JAC - 31 'Août 5110 IF IHC <= JAC THEN MC = 7: JAC = JAC - 31 5120 IF IHC <= JAC THEN MC = 6: JAC = JAC - 30 5130 IF IHC <= JAC THEN MC = 5: JAC = JAC - 31 5140 IF IHC <= JAC THEN MC = 4: JAC = JAC - 30 5150 IF IHC <= JAC THEN MC = 3: JAC = JAC - 31 5160 IF IHC <= JAC THEN MC = 2: JAC = JAC - FEV 5170 IF IHC <= JAC THEN MC = 1: JAC = JAC - 31 'Janvier 5180 IF IHC <= JAC THEN MC = 12: JAC = JAC - 31: AC = AC - 1 5190 IF IHC <= JAC THEN MC = 11: JAC = JAC - 30 5200 IF IHC <= JAC THEN MC = 10: JAC = JAC - 31 5210 IF IHC <= JAC THEN MC = 9: JAC = JAC - 30 'Septembre 5220 QC = IHC - JAC 5230 IF QC < 1 THEN QC = QC + 31: MC = 8 5240 J = JTKN + IH 5250 IF MOIS = 13 THEN J = J - 1 5260 GOSUB 3380 5270 RETURN 5280 ' 5290 'REPARTITION DES PARACHIYOT 5300 ' 5310 FOR X = 1 TO 7 5320 PJ(X) = 150: FC(X) = 0 5330 NEXT X 5340 HK = H + K: FC(3) = 1: FC(4) = 2: FC(5) = 2 'Souccot,Pessah,Chavou 5350 IF MOIS = 13 THEN GOTO 5440 5360 PJ(1) = 72: PJ(2) = 77: PJ(3) = 79: PJ(4) = 82: PJ(5) = 89: PJ(6) = 92: PJ(7) = 101'Parachiyot jumelables 5370 IF (RO = 2 AND HK = 60) OR (RO = 3 AND HK = 59) THEN FC(5) = 3 5380 IF (RO - 2 AND HK = 58) OR (RO = 7 AND HK = 60) THEN PJ(5) = 150 5390 IF RO = 5 AND HK = 60 THEN PJ(1) = 150: PJ(5) = 150: PJ(7) = 150 5400 IF RO = 5 AND HK = 59 THEN FC(4) = 3: FC(5) = 3: PJ(5) = 150: PJ(7) = 150 5410 IF RO = 7 AND HK = 58 THEN PJ(5) = 150: PJ(7) = 150 5420 RETURN 5430 ' 5440 IF (RO = 2 AND HK = 60) OR (RO = 3 AND HK = 59) THEN FC(4) = 3: FC(5) = 3: PJ(6) = 92 5450 IF (RO = 2 AND HK = 58) OR (RO = 7 AND HK = 60) THEN FC(5) = 3: PJ(5) = 89: PJ(6) = 92: PJ(7) = 101 5460 IF RO = 5 AND HK = 60 THEN PJ(7) = 101 '7 types d'années 5470 IF RO = 7 AND HK = 58 THEN PJ(6) = 92: PJ(7) = 101 'Embol. 5480 RETURN 5490 ' 5500 'C A L E N D R I E R C I V I L - H E B R A I Q U E 5510 ' 5520 CLS : PRINT PG$; "7 : "; TP$(7): PRINT 5530 GOSUB 2600 'Demande l'année civile 5540 GOSUB 2640 'Demande les limites 5550 MC = MO: IF AL = O THEN AL = AC 5560 FOR AC = AC TO AL 5570 PRINT : PRINT : PRINT AC: PRINT 5580 ACC = AC: AH = AC + 3760 5590 GOSUB 3970 'Caractéristiques complètes 5600 JMC(2) = FEV 'Février 5610 FOR MC = MO TO ML 5620 FOR QC = 1 TO JMC(MC) 5630 AC = ACC: QCC = QC 5640 IF AC = 1582 THEN GOSUB 4360 'Correction Julien/Grégor. 5650 IF MC > 8 THEN AC = AC + 1 5660 AH = AC + 3760 5670 GOSUB 3970 'Caractéristiques complètes 5680 JMC(2) = FEV: JMH(2) = H: JMH(3) = K 'Février,'Hechvan,Kislev 5690 GOSUB 4460 'Intervalle civil puis hébr. 5700 QC = QCC 5710 MX = MH: QX = QH 5720 GOSUB 6200 5730 IF J = 7 THEN GOSUB 6670'Détermine la Paracha 5740 MH = MX: QH = QX 5750 PRINT " "; J$(J); QC; TAB(14); MC$(MC); ACC; TAB(29); 5755 PRINT FF$(FF); F$(F); FH$(FH); TAB(61); QH; TAB(65); MH$(MH); AH 5760 IF JO = 1 THEN GOTO 5790 5770 NEXT QC 5780 PRINT 5790 NEXT MC 5800 QC = 1: MC = MO: AC = ACC 5810 NEXT AC 5820 GOTO 850 5830 ' 5840 ' 5850 'C A L E N D R I E R H E B R A I Q U E - C I V I L 5860 ' 5870 CLS 5880 PRINT PG$; "8 : "; TP$(8): PRINT 5890 GOSUB 2490 'Demande l'année hébraïque 5900 GOSUB 2640 'Demande la date limite 5910 IF AL = 0 THEN AL = AH 5920 GOSUB 3970 'Caractéristiques complètes 5930 IF MOIS = 12 AND MH = 7 THEN GOTO 3130 'Date inexistante 5940 JMH(2) = H: JMH(3) = K ''Hechvan,Kislev 5950 FOR AH = AH TO AL 5960 PRINT : PRINT : PRINT AH: PRINT 5970 AC = AH - 3760: ACC = AC 5980 FOR MH = MO TO ML 5990 FOR QH = 1 TO JMH(MH) 6000 AC = ACC 6010 GOSUB 3970 'Caractéristiques complètes 6020 JMH(2) = H: JMH(3) = K ''Hechvan,Kislev 6030 GOSUB 4910 'Intervalle hébr. puis civil 6040 IF AC = 1582 THEN GOSUB 4390 'Correction Julien-Grégor. 6050 GOSUB 6200 6060 IF J = 7 THEN GOSUB 6670 'Parach. et Chab. particuliers 6070 PRINT " "; J$(J); QH; TAB(14); MH$(MH); AH; TAB(28); 6075 PRINT FF$(FF); F$(F); FH$(FH); TAB(61); QC; TAB(65); MC$(MC); AC 6080 IF JO = 1 AND MOIS = 12 AND MH = 6 THEN MH = 7 6090 IF JO = 1 THEN GOTO 6130 'Seul le 1er jour du mois 6100 IF MOIS = 12 AND MH = 6 AND QH = 29 THEN QH = 30: MH = 7 6105 'Pas de Adar II, année commune 6110 NEXT QH 6120 PRINT 6130 NEXT MH 6140 QH = 1: MH = MO 6150 NEXT AH 6160 GOTO 850 6170 ' 6180 'S'IL S'AGIT D'UN CHABBAT 6190 ' 6200 IF J = 7 THEN F$(0) = "*********": FF$(0) = "********" ELSE F$(0) = "---------": FF$(0) = "--------" 6210 FH$(FH) = "--------" 6220 F = 0: FF = 0 6230 IF QH = 30 OR QH = 1 THEN FF = 1 6240 IF QH = 1 AND QH = 1 THEN FF = 0 6250 ON MH GOTO 6260, 6340, 6350, 6370, 6400, 6420, 6450, 6490, 6530, 6560, 6580, 6600, 6620 6260 IF QH = 1 OR QH = 2 THEN F = 1 'Roch-Hachana 6270 IF (QH = 3 AND J < 7) OR (QH = 4 AND J = 1) THEN F = 2 6275 'Jeûne de Guédalia 6280 IF QH = 10 THEN F = 3 'Kippour 6290 IF QH = 15 OR QH = 16 THEN F = 4 'Souccot 6300 IF QH = 17 OR QH = 18 OR QH = 19 OR QH = 20 THEN F = 4: FF = 2 6305 'Hol-Hamo'èd Souccot 6310 IF QH = 21 THEN F = 21 'Hocha'ana Rabba 6320 IF QH = 22 THEN F = 22 'Chemini 'Atséret 6330 IF QH = 23 THEN F = 23 'Sim'hat Torah 6340 RETURN 6350 IF QH > 24 THEN F = 16: FH$(FH) = "-------------" 'Hanouca 6360 RETURN 6370 IF QH < (33 - K) THEN F = 16: FH$(FH) = "-------------" 'Han 6380 IF (QH = 10 AND J < 7) OR (QH = 11 AND J = 1) THEN F = 6 6385 'Jeûne du 10 Tévet 6390 RETURN 6400 IF QH = 15 THEN FF = 3 'Tou Bichevat 6410 RETURN 6420 IF MOIS = 12 THEN GOTO 6450 6430 IF QH = 14 THEN FF = 6 'Pourim Katane 6440 RETURN 6450 IF (QH = 11 AND J = 5) OR (QH = 13 AND J < 7) THEN F = 8 6455 'Jeûne d'Esther 6460 IF QH = 14 THEN F = 9 'Pourim 6470 IF QH = 15 THEN FF = 14 'Pourim Chouchane 6480 RETURN 6490 IF (QH = 14 AND J < 7) OR (QH = 12 AND J = 5) THEN F = 25 6495 'Jeûne des premiers-nés 6500 IF QH = 15 OR QH = 16 OR QH = 21 OR QH = 22 THEN F = 10 'Pe 6510 IF QH = 17 OR QH = 18 OR QH = 19 OR QH = 20 THEN F = 10: FF = 2 6515 'Hol-Hamo'èd Pessa'h 6520 RETURN 6530 IF QH = 18 THEN FF = 4 6540 IF QH = 14 THEN FF = 7 6550 RETURN 6560 IF QH = 6 OR QH = 7 THEN F = 12 'Chavou'ot 6570 RETURN 6580 IF (QH = 17 AND J < 7) OR (QH = 18 AND J = I) THEN F = 13 6585 'Jeûne du 17 Tamouz 6590 RETURN 6600 IF (QH = 9 AND J < 7) OR (QH = 10 AND J = 1) THEN F = 14 6605 'Jeûne du 9 Av 6610 IF QH = 15 THEN FF = 5 'Tou Beav 6620 RETURN 6630 ' 6640 ' 6650 'PARACHIYOT ET CHABBATOT PARTICULIERS 6660 ' 6670 NS = O 6680 GOSUB 5310 'Répartition des Parachiyot 6690 IF MOIS = 12 THEN JMH(6) = 29: JMH(7) = 0 ELSE JMH(6) = 30: JMH(7) = 29 6695 'Jours de Adar(s) 6700 FOR X = 1 TO (MH - 1) 6710 NS = NS + JMH(X) 6720 NEXT X 6730 NS = (INT((NS + QH - 23) / 7)) + 52 6735 'Nombre de semaines depuis Sim'hat-Torah + 52 6740 'FC est un facteur de correction consécutif aux 6745 'fêtes qui tombent Chabbat 6750 IF MH > 1 OR (QH > 23 AND MH = 1) THEN FC = 3 'Après Souc 6760 IF MH > 8 OR (QH > 22 AND MH = 8) THEN FC = 4 'Ap. Pessah 6770 IF MH > 10 OR (QH > 6 AND MH = 10) THEN FC = 5 'Ap. Chav, 6780 IF F = 0 AND MH = 1 THEN GOSUB 7060 6785 'Chabbatot qui précèdent Sim'hat-Torah 6790 IF F = O THEN F = NS - FC(FC): FH$(FH) = "***********" 6795 'Détermine la Paracha 6800 ' 6810 FOR X = 1 TO 7 6820 IF F > PJ(X) THEN F = F + 1 6825 'Ajoute une Paracha suite à un jumelage 6830 NEXT X 6840 ' 6850 FOR X = 1 TO 7 6860 FH$(FH) = F$(F + 1) 6870 IF F = PJ(X) THEN GOTO 6890 ELSE FH$(FH) = "***********" 6875 'P(X) est la Paracha jumelée 6880 NEXT X 6890 ' 6900 'Traitement des Chabbatot comportant une lecture 6910 'spéciale de la Torah 6920 ' 6930 IF MH = 1 AND QH > 2 AND QH < 9 THEN FF = 13 'Chabbat Chouva 6940 'Chabbat Chekalim 6950 IF (MOIS = 12 AND ((MH = 5 AND QH > 24) OR (MH = 6 AND QH = 1))) THEN FF = 8 6955 IF (MOIS = 13 AND ((MH = 6 AND QH > 24) OR (MH = 7 AND QH = 1))) THEN FF = 8 6960 'Chabbat Zakhor 6970 IF (MOIS = 12 AND (MH = 6 AND QH > 7 AND QH < 14)) OR (MOIS = 13 AND (MH = 7 AND QH > 7 AND QH < 14)) THEN FF = 9 6980 'Chabbat Para 6990 IF (MOIS = 12 AND (MH = 6 AND QH > 17 AND QH < 24)) OR (MOIS = 13 AND (MH = 7 AND QH > 17 AND QH < 24)) THEN FF = 10 7000 'Chabbat Ha'hodech 7010 IF (MOIS = 12 AND ((MH = 6 AND QH > 24) OR (MH = 8 AND QH = 1))) OR (MOIS = 13 AND ((MH = 7 AND QH > 24) OR (MH = 8 AND QH = 1))) THEN FF = 11 7020 IF MH = 8 AND QH > 7 AND QH < 15 THEN FF = 12 'Chabbat Hagadol 7030 IF F < 40 THEN FH$(FH) = "********" 7040 IF F = 16 THEN FH$(FH) = F$(NS - FC(FC)) 'Chabbat 'Hanouca 7050 RETURN 7060 IF QH = 13 OR QH = 12 OR QH = 3 OR QH = 8 THEN F = 50 7065 'Chab. Vayakhel 7070 IF QH = 5 OR QH = 6 THEN F = 49 'Chabbat Haazinou 7080 RETURN 12450 INPUT " JOUR DU MOIS (1-30) : "; QH