Title: | BAGELS and other things of Jewish interest |
Notice: | 1.0 policy, 280.0 directory, 32.0 registration |
Moderator: | SMURF::FENSTER |
Created: | Mon Feb 03 1986 |
Last Modified: | Thu Jun 05 1997 |
Last Successful Update: | Fri Jun 06 1997 |
Number of topics: | 1524 |
Total number of notes: | 18709 |
I am looking for a formula and/or program to print the Jewish Calander (with Holidays noted) for a given input year. Any help you Noters can give will be appreciated, Thanks in advance. Dave
T.R | Title | User | Personal Name | Date | Lines |
---|---|---|---|---|---|
147.1 | This calendar will outlive all of us. | BAGELS::SREBNICK | David Srebnick, NCSS, LKG1-3/B19 | Thu Jun 19 1986 21:09 | 16 |
I don't have a program, but this may be of interest to you. You can get a book called: 150 Year Calendar with corresponding English and Hebrew dates including Holidays, Sidras, and Haftoras. (c) 1963 by M. Greenfield, Brooklyn, NY 11211 This has calendars (already printed) for the years 1900 - 2050. It also includes a 2000 (yes, that's right, 2000) year Festival Calendar. This calendar runs from the years 4000-6000. I don't suppose that there are too many books with this title, so you ought to be able to call a Jewish book store and order it. You may be able to figure out a formula from the book. You certainly have enough data. | |||||
147.2 | There is an algorithm | BELKER::LUWISH | Fri Jun 20 1986 11:20 | 27 | |
The 150 Year Calendar mentioned does not really have enough data to deduce an algorithm from. I was interested in writing such a program (and may yet do so) and after a long search found a book in the Brandeis University Library entitled "Rabbinical Mathematics and Astronomy". This book covers all the mathematics to be found in the richness of our Talmud. Chapter 17, "The Fixed Calendar" covers the algorithm in detail - it involves the calculation of the "Molad" (the mean conjuntion of the moon) as well as some adjustment rules to ensure that a portion of the new moon be potentially visible on Rosh Hashana, that Yom Kippur not fall on a Friday or Sunday, and that the consequences of the aforementioned not result in an excessively long or short year. Due to the length and typographical difficulties of the chapter (some Hebrew text, a number of tables and equations) I will not type it in here, but will gladly send a hardcopy to anyone who sends me MAIL at {BELKER|FURILO|RENKO}::LUWISH. A hardy soul may wish to summarize the algorithm and post it here, or even write a program. Whoever writes such a program should test it against the "150 Year Calendar" first, then naturally make it available to all of us. Ed By the way, my original motivation to computerize the calendar was to calculate Yahrzeits of members of my family who perished under Hitler. I am doing some genealogical research to find out who they were, so I can memorialize them in some way. | |||||
147.3 | Jewish Calendar Algorithm | REX::MINOW | Martin Minow, DECtalk Engineering | Mon Jul 07 1986 01:23 | 282 |
Following the form feed, you will find the C source for a program that computes the Jewish calendar. The program was distributed over the Unix USENET a year or so ago. It compiles and runs under Vax C. I cannot vouch for its accuracy. The author's network address is RHEA::DECWRL::"ihnp4!ihlpa!rjh" Martin. #if 0 Shalom! I have enclosed with this item a proposed algorithm for converting a Julian (on or before Oct 4, 1582) or Georgian (on or after Oct 15, 1582) calendar date to the coresponding Jewish calendar date. I am asking whether or not the algorithm does an accurate job. Randolph J. Herber, ...ihnp4!ihlpa!rjh, 312-979-6553 (U.S.A.) U.S.Mail address Amdahl Corp, C/O Room IH1C220, AT&T Bell Labs, Naperville, IL, 60566-1005 #endif #include <stdio.h> #include <time.h> #ifdef vms #include errno #include ssdef #include stsdef #define IO_SUCCESS (SS$_NORMAL | STS$M_INHIB_MSG) #define IO_ERROR (SS$_ABORT) #endif #ifndef IO_SUCCESS #define IO_SUCCESS 0 /* Normal exit */ #define IO_ERROR 1 /* Error exit */ #endif /* This program writes a date (to stdout) according to the Jewish Calendar. If no argument is specified, it calls a "ctime" function to use today's date. Otherwise, it may be invoked with 3 arguments -- month, day, year (4-digit negative for BC(E)). */ static char *copyright = { "(C) 1985 Randolph J. Herber Usage is unrestricted with retention of notice." }; #define TRUE 1 #define FALSE 0 static int mlen[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 }; static int jmlen[] = { 0,30,29,30,29,30,30,29,30,29,30,29,30,29 }; static char *mname[] = { "", "Tishri", "Chshvn", "Kislev", "Tebet", "Shebat", "Adar", "VeAdar", "Nisan", "Iyar", "Sivan", "Tammuz", "Ab", "Elul" }; static short mdays[] = { 0, 354, 708, 1092, 1446, 1801, 2185, 2539, 2923, 3277, 3632, 4016, 4370, 4724, 5108, 5463, 5817, 6201, 6555 }; static short mparts[] = { 0, 9516, 19032, 16381, 25897, 9493, 6842, 16358, 13703, 23223, 6819, 4168, 13684, 23200, 20549, 4145, 13661, 11010, 20526 }; static short mtype[] = { 2, 1, 0, 2, 1, 0, 3, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 3, 0 }; static long table1[4][9] = { {0,15611,38880,64800, 83855,116640,145211,168480,181440}, {0, 3444,38880,55284,107124,116640,133044,168480,181440}, {0, 3444,36229,55284,107124,116640,123528,168480,181440}, {0, 3444,36229,55284,107124,116640,133044,168480,181440} }; static short table2[2][9] = { {1,3,2,2,3,1,3,1,0}, {1,3,2,1,3,1,3,1,0} }; static short table3[] = { 1,1,2,4,4,6,6,1,0 }; static char *jkind1[] = { "", "defective", "normal", "complete" }; static char *jkind2[] = { "", " leap" }; main(argc,argv) int argc; char **argv; { long secs, time(); struct tm *tbuf, *localtime(); void exit(); int year, yr, mo, da, unit(), jyr, jcycle; long jdate, jpart, jday, jarg, jstart; short yrm1, n, jyear; char style, leap, jtype, jleap; if (argc > 1 && argc != 4) { (void) printf("Usage: No arguments for today's date,"); (void) printf(" or '%s <mo> <da> <yr>'.\n", *argv); (void) exit(IO_ERROR); } else if (argc == 1) { secs = time((long *)0); tbuf = localtime(&secs); mo = tbuf->tm_mon + 1; da = tbuf->tm_mday; year = tbuf->tm_year + 1900; } else { mo = atoi(argv[1]); da = atoi(argv[2]); year = atoi(argv[3]); } if (year != 0 && year >= -3761 && year < 10000) { yr = year > 0 ? year : year + 1; style = year > 1582; leap = style ? (((yr % 4) == 0) && ((yr % 100) != 0)) || ((yr % 400) == 0) : ((yr % 4) == 0); mlen[2] = leap ? 29 : 28; if (mo >=1 && mo <= 12 && da >= 1 && da <= mlen[mo] && !(year == 1582 && (mo == 1 || mo == 2 || (mo == 10 && da >= 5 && da <= 14)))) { if (year == 1582 && mo == 10) { mlen[10] = 21; if (da >= 15) da -= 10; } else { mlen[10] = 31; } yrm1 = yr - 1; jdate = 1721423l+yrm1*365+unit(yrm1,4)+da; for (n=1;n<mo;++n) { jdate += mlen[n]; } if (style) { jdate -= 10 + (yrm1-1500)/100 - (yrm1-1200)/400; } if (jdate < 347998) { (void) printf("%s: Date of range!\n",*argv); (void) exit(IO_ERROR); } jyr = yr + 3761; do { jyr -= 1; jcycle = unit(jyr,19); jyear = rmdr(jyr,19); jtype = mtype[jyear]; jleap = jtype == 0; jpart = 17875l*jcycle+mparts[jyear]+25044l; jday = lunit(jpart,25920l); jpart -= jday * 25920l; jday += 6939l*jcycle+mdays[jyear]+347998l; jarg = lrmdr(jday,7l)*25920l+jpart; for(n=0;n<=7;++n) { if (table1[jtype][n]<=jarg && jarg<table1[jtype][n+1]) break; } jtype = table2[jleap][n]; jstart = jday+lrmdr(2l+table3[n]-jday,7l)-3l; } while (jdate < jstart); jyr += 1; jday = (jdate - jstart) + 1; switch (jtype) { case 1: jmlen[3] = 29; break; case 2: break; case 3: jmlen[2] = 30; break; default: printf("%s: Internal error 1\n",*argv); exit(IO_ERROR); break; } if (!jleap) { mname[7] = mname[6]; mname[6] = mname[0]; jmlen[6] = 0; } for(n=1;n<=13;++n) { if(jday<=jmlen[n]) break; jday -= jmlen[n]; } (void) printf("%s %d, %d %s%s\n", mname[n],jday,jyr, jkind1[jtype],jkind2[jleap]); (void) exit(IO_SUCCESS); } else { (void) printf("%s: Invalid date!\n",*argv); (void) exit(IO_ERROR); } } (void) printf("%s: Date out of range!\n",*argv); (void) exit(IO_ERROR); } int unit(f1,f2) int f1, f2; { int rmdr; rmdr = f1 % f2; if (rmdr < 0) rmdr += f2; return (f1 - rmdr) / f2; } long lunit(f1,f2) long f1, f2; { long rmdr; rmdr = f1 % f2; if (rmdr < 0) rmdr += f2; return (f1 - rmdr) / f2; } int rmdr(f1,f2) int f1, f2; { int rmdrx; rmdrx = f1 % f2; if (rmdrx < 0) rmdrx += f2; return rmdrx; } long lrmdr(f1,f2) long f1, f2; { long rmdrx; rmdrx = f1 % f2; if (rmdrx < 0) rmdrx += f2; return rmdrx; } | |||||
147.4 | how to use the program in .3 | DELNI::GOLDSTEIN | Distributed Systems Ideology | Mon Jul 07 1986 16:32 | 22 |
I found the program in .3 to be a bit tricky to invoke, since it's basically written for Unix (and looks for the "standard input" for its date parameters). But for all you VMS Forever types out there, here's how it's done: First you need a copy of the .EXE in your directory; in my case, I linked it as HEBREWCAL.EXE in my SYS$LOGIN (top-level) directory. Then, you set up a symbol for it, and feed it parameters. $ HCAL:==$SYS$LOGIN:HEBREWCAL.EXE 'p1' 'p2' 'p3' To use it to find out any particular day, use the American standard all-number date field like this: $ HCAL 12 31 1986 It will then give you the answer. Next question: Will someone please explain the terms "defetive leap", "complete", etc., as applied to the Hebrew calendar? fred_who_is_slightly_more_literate_in_VMS_than_Hebrew | |||||
147.5 | A bit more information | REX::MINOW | Martin Minow, DECtalk Engineering | Mon Jul 07 1986 17:12 | 29 |
Sorry, I probably should have given an instruction manual with the code. Assuming you've stored the program as hcal.c, compile it as follows: $ CC hcal $ LINK hcal,sys$library:vaxcrtl/lib Now, move the executable image to some known place, such as your login directory (SYS$LOGIN), and add the following to your login.com file: $ HCAL :== $SYS$LOGIN:hcal You can get the equivalance for the current date by $ hcal (no parameters) or, for any specific date, by $ hcal <month> <day> <year> where month, day, and year are given in decimal. The year labels ("defective", "normal", "complete") and "leap" classify the year within the Jewish calendar cycle. There is a good, if dense, article in the Enclycopaedia Brittanica on calendars, or you could chase down the reference in one of the earlier responses to this note. Martin. | |||||
147.6 | duh,heh...what fast was that? | CNTROL::PINCK | Wed Aug 05 1987 11:15 | 13 | |
OK...Who has this calander? My Hebrew calender is at my school apartment and I am puzzled. Yesterday, my brother called from the Jewish camp in which he is working and among other things asked if I had had an easy fast. I responded that it was very easy(I had no problems at all!!!) What was he talking about...I want to be able to tell him what it was before he asks the next time I talk to him. Thanks alot, Amy | |||||
147.7 | It was Tisha b'Av | GRECO::FRYDMAN | Wed Aug 05 1987 12:44 | 41 | |
The fast day was Tisha b'Av (the Ninth of AV). It commemorates: -The day the spies brought back bad report of the "promised land"; -The day the First Temple was destroyed; -The day the Second Temple was destroyed; and -The day the Jews were expelled from Spain in 1492. _there's one more thing that happen on this date, but I've forgotten. This is also the day that the Messiah is to be born. Tisha b'Av is a full fast(like Yom Kippur)- starting at sundown on Monday and ending last night at around 8:45PM Boston time. The Book of Lamentations is read during the evening service and various poetry of mourning the Temples (Kinot) are read during the day. Many other tragedies that have befalled our people are also remembered with special kinot. There has been some controversy about having a separate day to remember the Holocaust since other major destructions and tragedies are remembered on Tisha b'Av-- putting them all into an historical perspective. It has been suggested that those who forget Tisha b'Av will, in a few generations, also forget Yom HaShoah. Twelve years ago, my wife and I spent Tisha b'Av in Jerusalem. We davened at the Kottel (Western Wall) at night and in the morning, and spent the late morning and afternoon at Yad VaShem. At that time, the Jewish Quarter of the Old City was still in ruins from the Jordanian occupation. We could feel what the destroyed City was like 2000 years ago. Yad VaShem brought it full circle. Let's hope that with the coming of Moshiach, there will be no need to remember Tisha b'Av next year. ---Av year. | |||||
147.8 | "Disaster remembrance day" | CADSYS::RICHARDSON | Wed Aug 05 1987 13:50 | 20 | |
Av's answer is more complete than the one I put into some other note (the other "disaster" is supposed to be WW I - I don't know if it can really be construed to have started on the same date, though). In the US, Tisha B'Av tends to be a major fast day at Jewish summer camp, but not otherwise excpet among the very strict - probably because it falls during the summer. Our rabbi told a story that at summer camp they would spend the preceeding month studying Jerusalem, building a model old city out in a field near the lake. On the eve of Tisha B'Av, after the campers were asleep, the councelors would set the model on fire, and then wake up the campers (don't worry, they were careful to ensure that the fire would not spread!), and that is how they would set the stage for talking about the disasters the day commemorates. It must have made quite an impression on the kids, especially if they hadn't been to that particular camp before! I'm not sure how we came to have a separate Yom Hashoah (someone else may know...). | |||||
147.9 | HPSVAX::ROSENBLUH | Wed Aug 05 1987 14:48 | 49 | ||
The last time I was in Jerusalem I spent a day touring the excavations and dig of the western and southern faces of the Temple Mount (this area is visible behind a wire fence when you go the Western Wall). At the southwestern corner of the Temple Mount, the ground has been excavated down to what was 'sidewalk level' in 70 A.D. (that is, about 12 feet below today's sidewalk level). You can see broken stones from the top rows of the retaining wall of the Temple Mount built by Herod, lying on the 70 A.D-era sidewalk - stones that fell there the day Roman soldiers set fire to the Temple and destroyed the Herodian walls - that is, on the Ninth of Av. Frankly it thrilled me in a historical sense to be looking at something that could be dated so precisely because the date has been comemmorated by Jews for millenia - I don't expect everyone to get their jollies from this; it is very moving for many Jews as Yet Another Sign of the Lugubrious Nature of Jewish History. I don't know about this view that "Tisha B'Av is only commemorated at summer camps and by the very strict". I guess I don't consider myself very strict, but I fast on Tisha B'Av. Until this century, I guess fasting on Tisha B'Av was just standard Jewish religious practice. What happened? Did people get bored? (Alright, so I'm being facetious, and this is a rhetorical question; don't feel obliged to argue the point.) I believe that there are people who are ideologically (or perhaps I should say theologically) opposed to fasting on Tisha B'Av (possibly I have confused this with the 17th of Tammuz) because they feel that we are living in the beginning of Messianic times, and therefore should no longer be mourning the destructions of the temples. It is a mildly contrarian view of Modern Jewish History that the *real* destruction of European Jewry occured during WW I and not WW II. Agnon, for example, seems to have expounded this view in Oreach Natah Lalun (A Guest for the Night) and some of the very late-published short stories that deal with WW II. There was alot of physical destruction of Jews in WW I because the territory that was hit worst by battles (even worse than along the line from the North Sea to Switzerland, I think, altho there are military historians on the 'net who could clarify this) was Galicia, eastern Russia including much of the Pale of Jewish Settlement and other parts of Poland where there were hundreds of small Jewish villages. The way of life in these shtetls and villages was uprooted and destroyed, and they never recovered. Jews moved to the big cities in Poland and Russia, or to America, where assimilation and the drive to become modern changed the nature of Judaism -- it wasn't clear in what sense Judaism in Europe would have survived even without the impact of WW II, which of course meant the physical destruction of most European and over half of all Russian Jews. | |||||
147.10 | My feelings about Tisha B'Av | CADSYS::RICHARDSON | Wed Aug 12 1987 11:27 | 39 | |
Kathy- I don't think I have any real right to say that I think I am speaking for "most liberal Jews" or any other group, so let's say I am speaking for myself (at least mostly). I go to schul on Tisha B'Av, but I feel a lot more closely associated with Yom Hashoah because it is much more recent in our history, and affected a way of life that I can relate to. I really do not (I hope this doesn't HORRIFY anyone; I apologize if this offends any of you!) have any big desire that the historical temple be rebuilt and that we all return to animal sacrifices as a religious expression, as appropriate and right as that (presumably) was in its proper historical context. I met an Israeli woman who was absolutely overjoyed that there was archeological evidence that someone had discovered the "ashes of the red heifer" because then the Moslem mosques on the Temple Mount could be torn down (which I am sure would start WW III in an instant, but she didn't care, or didn't think that an important consideration), the temple rebuilt, and the animal sacrifices begun! (I didn't think to ask her who would be the high priest - I was fervently hoping at the time that hers wasn't the majority view, since I didn't picture the almost-certain nuclear war that would result as an auspicious beginning for the Messianic Age - or for anything else, for that matter, except the deaths of all of us, and probably the woman in question amongst the first, since her home was in Jerusalem!) Just maybe, it is these sorts of considerations that cause us to think of the day as marking ALL the destructions that have happened in history. Now, being the liberal that I am, I believe that the Messianic Age has to happen because of what WE HUMAN BEINGS do, and will not suddenly be handed down to us at some "appropriate" time or because some faction prayed hard enough; it will come about as a direct result of our own efforts to establish peace and brotherhood - which is not going to be the result of destroying the Moslem holy sites in Jerusalem, as unhappy as we may be with where some of them happen to be located (remembering that the ground they stand on is as special to the people who worship there now as it was to our own ancestors, as well as to other faiths in perhaps lesser degrees). /Charlotte |