Hebrew calendar software creators: can you notify this list when updating the calendar?
Stan Goodman
stan.goodman at hashkedim.com
Tue May 25 18:12:21 IDT 2010
At 15:27:10 on Tuesday Tuesday 25 May 2010, Ron Varburg
<linux-il at hotmail.com> wrote:
> I intend to file the following report. Any comments?
>
> Package: bsdmainutils
> Version: 8.0.11
> Severity: normal
> Tags: patch
>
>
> calendar.judaic was last updated in 2007. Due to the nature of
> the Jewish calendar, it renders the file unusable. To address the
> difficulties facing the maintaner, a python script is included. This
> script offers the maintainer a way to create the file as required.
> The script is not limited to a single year. Just enter the desired
> year as an argument in the command line. I suggest to keep this
> script in the Debian directory of the source package.
In what way is the Jewish calaendar unstable?
Here is a link to a website containing a list of very well-known articels
and books describing calculations for calculating dates. I do not mean
to imply by posting this link that it will be an innovation to anyone is
is interested in the subject; I post it for the convenience of those who
haven't considered these calculations previously. (I have lots of other
references.)
<http://emr.cs.uiuc.edu/~reingold/calendars.shtml>
> $ cat calendarJudaic.py
> #! /usr/bin/python
> # Filename: calendarJudaic.py
> #
> # License: no warranty close + no license (public domain)
> #
> # Creates a calendar.judaic file, which is suitable for inclusion
> # in Debian's bsdmainutils package. Up to the introductory of
> # this script the calendar.judaic file was not updated regulary.
> # Probably because updating it is time consuming. This python
> # script let anyone create that file, for any year. Its output is
> # written to stdout. It requires the libhdate-python package.
> # A small part of the holidays might require manual editing
> # because the state of Israel modifies the actual date by a few
> # days due to various considerations.
>
> # References:
> # http://www.mail-archive.com/linux-il@cs.huji.ac.il/msg58169.html
> # http://www.mail-archive.com/linux-il@cs.huji.ac.il/msg58321.html
> # http://www.mail-archive.com/linux-il@cs.huji.ac.il/msg58451.html
>
>
> from string import Template
> import hdate, optparse, sys, time
>
>
> def main():
>
> description = '''Description:
> Creates a calendar.judaic file, which is suitable for inclusion
> in Debian's bsdmainutils package. Up to the introductory of
> this script the calendar.judaic file was not updated regulary.
> Probably because updating it is time consuming. This python
> script let anyone create that file, for any year. Its output is
> written to stdout. It requires the libhdate-python package.
> A small part of the holidays might require manual editing
> because the state of Israel modifies the actual date by a few
> days due to various considerations.
> '''
> usage = "Usage: %prog [year]\n"\
> "\n"\
> "Example: %prog 2099"
> version = "29-May-2010"
> parser = optparse.OptionParser(description=description,
> usage=usage, version=version)
> (options, args) = parser.parse_args()
> if len(args)> 1:
> parser.error("\n " + str(len(args)) + " arguments were "
> "given. At most 1, an integer represnting a year, "
> "is expected."
> )
> elif len(args) == 1:
> # An integer represnting a year is expected.
> try:
> year = int(args[0])
> except ValueError:
> parser.error("\n Could not convert the argument " +
> args[0] + ", which should represent a year, to an integer." )
> else: # len(args) == 0, no args were given. Use the current year.
> year = time.localtime().tm_year
>
> h = hdate.Hdate()
>
> template_for_header = '''/*
> * Judaic Calendar. Created by calendar.judaic.py.
> * Collaboratively authored by linux-il at cs.huji.ac.il.
> *
> * $$Debian GNU\Linux$$
> *
> */
>
> /*
> * $$Id: calendarJudaic.py,v ${PLACE_HOLDER_FOR_VERSION}$$
> */
>
> #ifndef _calendar_judaic_
> #define _calendar_judaic_
>
> LANG=UTF-8
>
> /*
> * Jewish calendar for the CE year ${PLACE_HOLDER_FOR_THR_CE_YEAR}
> * ${PLACE_HOLDER_FOR_THE_JEWISH_START_OF_THE_CE_YEAR} -
> ${PLACE_HOLDER_FOR_THE_JEWISH_END_OF_THE_CE_YEAR} */
>
> '''
>
> footer = '''
>
> #endif /* !_calendar_judaic_ */'''
>
> substitutions_for_header = {
> 'PLACE_HOLDER_FOR_VERSION' : version,
> 'PLACE_HOLDER_FOR_THR_CE_YEAR' : str(year)
> }
> h.set_gdate(1, 1, year)
> substitutions_for_header[
> 'PLACE_HOLDER_FOR_THE_JEWISH_START_OF_THE_CE_YEAR'] = \
> h.get_format_date(h.get_julian()) + ' ' + \
> h.get_hebrew_year_string()
> h.set_gdate(31, 12, year)
> substitutions_for_header[
> 'PLACE_HOLDER_FOR_THE_JEWISH_END_OF_THE_CE_YEAR'] = \
> h.get_format_date(h.get_julian()) + ' ' + \
> h.get_hebrew_year_string()
> header = Template(template_for_header).substitute(
> substitutions_for_header)
> print header
>
> h.set_gdate(1, 1, year)
> julian = h.get_julian()
> for i in range(0, 365):
> h.set_jd(julian)
> julian += 1
> day = h.get_gday()
> month = h.get_gmonth()
> holyday = h.get_holyday_string(1)
> if holyday:
> print "%02d/%02d* %s" % (day, month, holyday)
> parasha = h.get_parasha_string(julian)
> if parasha != 'none':
> print "%02d/%02d* Parshat %s" % (day, month, parasha)
>
> print footer
>
> sys.exit()
>
>
> if __name__ == "__main__":
> main()
> else:
> # The following is useful from within an interactive Python
> # interpreter, where calendarJudaic.py is in the same `pwd`:
> # >>> import calendarJudaic
> pass
>
> $ cat calendar.judaic.2010
> /*
> * Judaic Calendar. Created by calendar.judaic.py.
> * Collaboratively authored by linux-il at cs.huji.ac.il.
> *
> * $Debian GNU\Linux$
> *
> */
>
> /*
> * $Id: calendarJudaic.py,v 29-May-2010$
> */
>
> #ifndef _calendar_judaic_
> #define _calendar_judaic_
>
> LANG=UTF-8
>
> /*
> * Jewish calendar for the CE year 2010
> * 15 Tevet 5770 - 24 Tevet 5771
> */
>
>
> 02/01* Parshat Vayechi
> 09/01* Parshat Shemot
> 16/01* Parshat Vaera
> 23/01* Parshat Bo
> 30/01* Tu B'Shvat
> 30/01* Parshat Beshalach
> 06/02* Parshat Yitro
> 13/02* Parshat Mishpatim
> 14/02* Family Day
> 20/02* Parshat Terumah
> 25/02* Ta'anit Esther
> 27/02* Parshat Tetzaveh
> 28/02* Purim
> 01/03* Shushan Purim
> 06/03* Parshat Ki Tisa
> 13/03* Parshat Vayakhel-Pekudei
> 20/03* Parshat Vayikra
> 27/03* Parshat Tzav
> 30/03* Pesach
> 31/03* Hol hamoed Pesach
> 01/04* Hol hamoed Pesach
> 02/04* Hol hamoed Pesach
> 03/04* Hol hamoed Pesach
> 04/04* Hol hamoed Pesach
> 05/04* Pesach VII
> 10/04* Parshat Shmini
> 12/04* Yom HaShoah
> 17/04* Parshat Tazria-Metzora
> 19/04* Yom HaZikaron
> 20/04* Yom HaAtzma'ut
> 24/04* Parshat Achrei Mot-Kedoshim
> 01/05* Parshat Emor
> 02/05* Lag B'Omer
> 08/05* Parshat Behar-Bechukotai
> 12/05* Yom Yerushalayim
> 15/05* Parshat Bamidbar
> 18/05* Erev Shavuot
> 19/05* Shavuot
> 22/05* Parshat Nasso
> 29/05* Parshat Beha'alotcha
> 05/06* Parshat Sh'lach
> 12/06* Parshat Korach
> 19/06* Parshat Chukat
> 26/06* Parshat Balak
> 29/06* Tzom Tammuz
> 03/07* Parshat Pinchas
> 10/07* Parshat Matot-Masei
> 11/07* Zhabotinsky day
> 17/07* Parshat Devarim
> 20/07* Tish'a B'Av
> 24/07* Parshat Vaetchanan
> 26/07* Tu B'Av
> 31/07* Parshat Eikev
> 07/08* Parshat Re'eh
> 14/08* Parshat Shoftim
> 21/08* Parshat Ki Teitzei
> 28/08* Parshat Ki Tavo
> 04/09* Parshat Nitzavim-Vayeilech
> 09/09* Rosh Hashana I
> 10/09* Rosh Hashana II
> 11/09* Parshat Ha'Azinu
> 12/09* Tzom Gedaliah
> 18/09* Yom Kippur
> 23/09* Sukkot
> 24/09* Hol hamoed Sukkot
> 25/09* Hol hamoed Sukkot
> 26/09* Hol hamoed Sukkot
> 27/09* Hol hamoed Sukkot
> 28/09* Hol hamoed Sukkot
> 29/09* Hoshana raba
> 30/09* Shmini Atzeret
> 30/09* Parshat Vezot Habracha
> 02/10* Parshat Bereshit
> 09/10* Parshat Noach
> 16/10* Parshat Lech-Lecha
> 20/10* Rabin memorial day
> 23/10* Parshat Vayera
> 30/10* Parshat Chayei Sara
> 06/11* Parshat Toldot
> 13/11* Parshat Vayetzei
> 20/11* Parshat Vayishlach
> 27/11* Parshat Vayeshev
> 02/12* Chanukah
> 03/12* Chanukah
> 04/12* Chanukah
> 04/12* Parshat Miketz
> 05/12* Chanukah
> 06/12* Chanukah
> 07/12* Chanukah
> 08/12* Chanukah
> 09/12* Chanukah
> 11/12* Parshat Vayigash
> 17/12* Asara B'Tevet
> 18/12* Parshat Vayechi
> 25/12* Parshat Shemot
>
>
> #endif /* !_calendar_judaic_ */
>
>
> The file that is currently included in the distribution is the
> following:
>
> $ cat /usr/share/calendar/calendar.judaic.2007
> /*
> * Judaic Calendar. Maintained by Josef Grosch
> <jgrosch at mooseriver.com>. *
> * $FreeBSD$
> *
> */
>
> /*
> * $Id: calendar.judaic,v 1.45 2007/01/01 22:24:53 jgrosch Exp $
> */
>
> #ifndef _calendar_judaic_
> #define _calendar_judaic_
>
> LANG=UTF-8
>
> /*
> * Jewish calendar for the CE year 2007
> * 11 Tevet 5767 - 22 tevet 5768
> */
>
>
> 01/06* Parshas Vayechi
> 01/13* Parshas Shemos
> 01/20* Parshas Vaera
> 01/20* Rosh Chodesh Shevat (Beginning of the month of Shevat)
> 01/27* Parshas Bo
> 02/03* Parshas Beshalach
> 02/03* Shabbos Shira
> 02/03* Tu B'Shevat (Feast of Trees)
> 02/10* Parshas Yisro
> 02/17* Parshas Mishpatim
> 02/17* Shabbos Shekalim
> 02/18* Rosh Chodesh Adar (Beginning of the month of Adar)
> 02/18* Be Happy! It's Adar
> 02/19* Rosh Chodesh Adar (Beginning of the month of Adar)
> 02/19* Be Happy! It's Adar
> 02/24* Parshas Terumah
> 03/01* Ta'anis Esther (Fast of Esther, Battle of Purim)
> 03/03* Parshas Tetzaveh
> 03/03* Shabbos Zachor
> 03/04* Purim (Feast of Lots)
> 03/05* Shushan Purim
> 03/10* Parshas Ki Sisa
> 03/10* Shabbos Parah
> 03/17* Parshas Vayakhel-Pekudei
> 03/17* Shabbos HaChodesh
> 03/20* Rosh Chodesh Nissan (Beginning of the month of Nissan)
> 03/24* Parshas Vayikra
> 03/31* Parshas Tzav
> 03/31* Shabbos Haggadol
> 04/02* Erev Pesach
> 04/02* Ta'anis Bechoros (Fast of the First Born)
> 04/02* First Seder night
> 04/03* Pesach (First Day of Passover; sabbatical)
> 04/03* Second Sedar night
> 04/04* Pesach (Second Day of Passover; sabbatical)
> 04/04* Sefirat ha-Omer begins (Counting of the Omer)
> 04/05* Omer 2nd day
> 04/05* Pesach (Third Day of Passover; sabbatical)
> 04/05* Hol Hamoed
> 04/06* Omer 3rd day
> 04/06* Pesach (Fourth Day of Passover)
> 04/06* Hol Hamoed
> 04/07* Omer 4th day
> 04/07* Pesach (Fifth Day of Passover)
> 04/07* Hol Hamoed
> 04/08* Omer 5th day
> 04/08* Pesach (Sixth Day of Passover)
> 04/08* Hol Hamoed
> 04/09* Omer 6th day
> 04/09* Pesach (Seventh Day of Passover)
> 04/10* Omer 7th day
> 04/10* Pesach (Last Day of Passover; 8th day of Pesach; sabbatical)
> 04/10* Yizkor
> 04/11* Omer 8th day
> 04/12* Omer 9th day
> 04/13* Omer 10th day
> 04/14* Omer 11th day
> 04/14* Parshas Shmini
> 04/15* Omer 12th day
> 04/15* Yom HaShoah (Holocaust Memorial Day)
> 04/16* Omer 13th day
> 04/17* Omer 14th day
> 04/18* Omer 15th day
> 04/18* Rosh Chodesh Iyar (Beginning of the month of Iyar)
> 04/19* Omer 16th day
> 04/19* Rosh Chodesh Iyar (Beginning of the month of Iyar)
> 04/20* Omer 17th day
> 04/21* Omer 18th day
> 04/21* Parshas Tazria-Metzora
> 04/22* Omer 19th day
> 04/23* Omer 20th day
> 04/23* Yom HaZikaron
> 04/24* Omer 21st day
> 04/24* Yom HaAtzma'ut (Israel Independence Day)
> 04/25* Omer 22nd day
> 04/26* Omer 23th day
> 04/27* Omer 24th day
> 04/28* Omer 25th day
> 04/28* Parshas Achrei Kedoshim
> 04/29* Omer 26th day
> 04/30* Omer 27th day
> 05/01* Omer 28th day
> 05/02* Omer 29th day
> 05/03* Omer 30th day
> 05/04* Omer 31st day
> 05/05* Omer 32nd day
> 05/05* Parshas Emor
> 05/06* Lag B'Omer (Commemoration of the Great Rebellion)
> 05/06* Omer 33th day
> 05/07* Omer 34th day
> 05/08* Omer 35th day
> 05/09* Omer 36th day
> 05/10* Omer 37th day
> 05/11* Omer 38th day
> 05/12* Omer 39th day
> 05/12* Parshas Behar-Bechukosai
> 05/13* Omer 40th day
> 05/14* Omer 41st day
> 05/15* Omer 42nd day
> 05/16* Omer 43th day
> 05/16* Yom Yerushalayim (Reunification of Jerusalem)
> 05/17* Omer 44th day
> 05/18* Omer 45th day
> 05/18* Rosh Chodesh Sivan (Beginning of the month of Sivan)
> 05/19* Omer 46th day
> 05/19* Parshas Bamidbar
> 05/20* Omer 47th day
> 05/21* Omer 48th day
> 05/22* Erev Shavuos
> 05/22* Omer 49th day
> 05/23* Shavuos (Festival of Weeks; sabbatical)
> 05/24* Shavuos (Festival of Weeks; sabbatical)
> 05/24* Yizkor
> 05/26* Parshas Nasso
> 06/02* Parshas Beha'aloscha
> 06/09* Parshas Shelach Lecha
> 06/16* Parshas Korach
> 06/16* Rosh Chodesh Tammuz (Beginning of the month of Tammuz)
> 06/17* Rosh Chodesh Tammuz (Beginning of the month of Tammuz)
> 06/23* Parshas Chukas
> 06/30* Parshas Balak
> 07/03* Fast of Shiv'a Asar B'Tammuz (Romans breach Wall of
> Jerusalem; fast day) 07/03* Tzom Tammuz
> 07/07* Parshas Pinchas
> 07/14* Parshas Matos-Masei
> 07/16* Rosh Chodesh Av (Beginning of the month of Av)
> 07/21* Parshas Devarim
> 07/21* Shabbos Hazon
> 07/24* Fast of Tish'a B'Av (Babylon/Rome destroys Holy Temple; fast
> day) 07/28* Parshas Vaeschanan
> 07/28* Shabbos Nachamu
> 07/30* Tu B'Av
> 08/04* Parshas Eikev
> 08/11* Parshas Re'eh
> 08/14* Rosh Chodesh Elul (Beginning of the month of Elul)
> 08/15* Rosh Chodesh Elul (Beginning of the month of Elul)
> 08/18* Parshas Shoftim
> 08/25* Parshas Ki Tetze
> 09/01* Parshas Ki Savo
> 09/08* Parshas Nitzavim-Vayeilech
> 09/12* Erev Rosh Hashana
> 09/13* First Day of Rosh Hashanah (Jewish New Year; 5768;
> sabbatical) 09/13* Rosh Chodesh Tishrei (Beginning of the month of
> Tishrei) 09/14* Rosh Hashanah (sabbatical)
> 09/15* Parshas Ha'Azinu
> 09/15* Shabbos Shuvah
> 09/16* Fast of Gedalya (Murder of Gedalya and subsequent Exile; fast
> day) 09/16* Tzom Gedaliah
> 09/21* Erev Yom Kippur
> 09/22* Yom Kippur (Day of Atonement; sabbatical, fast day)
> 09/22* Yizkor
> 09/26* Erev Sukkos
> 09/27* Succos (Festival of Tabernacles; sabbatical)
> 09/28* Succos (sabbatical)
> 09/28* Sukkos (Second day of Sukkos)
> 09/29* Sukkos (Third day of Sukkos)
> 09/29* Hol Hamoed
> 09/30* Sukkos (Fourth day of Sukkos)
> 09/30* Hol Hamoed
> 10/01* Sukkos (Fifth day of Sukkos)
> 10/01* Hol Hamoed
> 10/02* Sukkos (Sixth day of Sukkos)
> 10/02* Hol Hamoed
> 10/03* Hoshanah Rabba (Seventh day of Succos)
> 10/03* Sukkos (Seventh day of Sukkos)
> 10/04* Shmini Atzeres (8th Day of Gathering; sabbatical)
> 10/04* Yizkor
> 10/05* Simchas Torah (Rejoicing of the Law; sabbatical)
> 10/06* Parshas Bereshis
> 10/12* Rosh Chodesh Heshvan (Beginning of the month of Heshvan)
> 10/13* Parshas Noach
> 10/13* Rosh Chodesh Heshvan (Beginning of the month of Heshvan)
> 10/20* Parshas Lech-Lecha
> 10/27* Parshas Vayera
> 11/03* Parshas Chayei Sara
> 11/10* Parshas Toldos
> 11/11* Rosh Chodesh Kislev (Beginning of the month of Kislev)
> 11/17* Parshas Vayetzei
> 11/24* Parshas Vayishlach
> 12/01* Parshas Vayeshev
> 12/04* Erev Chanukah
> 12/04* Light 1st candle
> 12/05* Chanukah (First Day)
> 12/05* Light 2nd candle
> 12/06* Chanukah (Second Day)
> 12/06* Light 3rd candle
> 12/07* Chanukah (Third Day)
> 12/07* Light 4th candle
> 12/08* Chanukah (Fourth Day)
> 12/08* Parshas Miketz
> 12/08* Light 5th candle
> 12/09* Chanukah (Fifth Day)
> 12/09* Light 6th candle
> 12/10* Chanukah (Sixth Day)
> 12/10* Rosh Chodesh Tevet (Beginning of the month of Tevet)
> 12/10* Light 7th candle
> 12/11* Chanukah (Seventh Day)
> 12/11* Light 8th candle
> 12/12* Chanukah (Eight Day)
> 12/15* Parshas Vayigash
> 12/19* Asara B'Tevet
> 12/19* Fast of Asara B'Tevet (Babylonians put siege on Jerusalem;
> fast day) 12/22* Parshas Vayechi
> 12/29* Parshas Shemos
>
>
> #endif /* !_calendar_judaic_ */
>
>
> _________________________________________________________________
> Hotmail: שירות דואר אלקטרוני מהימן ועשיר המסופק בחינם.
> https://signup.live.com/signup.aspx?id=60969
> _______________________________________________
> Linux-il mailing list
> Linux-il at cs.huji.ac.il
> http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
--
Stan Goodman
Qiryat Tiv'on
Israel
More information about the Linux-il
mailing list