• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

po/H16-Apr-2017-2,8522,008

tests/H16-Apr-2017-18,69218,410

.gitignoreH A D16-Apr-2017369 4033

.travis.ymlH A D16-Apr-2017199 1110

AUTHORSH A D16-Apr-2017522 1712

COPYINGH A D16-Apr-201717.6 KiB341281

Makefile.amH A D16-Apr-20172.5 KiB7640

Makefile.inH A D16-Apr-201732.8 KiB1,004874

NEWS.mdH A D16-Apr-201710.2 KiB265213

README.mdH A D16-Apr-201711.7 KiB261202

astro.cH A D16-Apr-201711.3 KiB309132

astro.hH A D16-Apr-20174 KiB7616

cities.hH A D16-Apr-20173.7 KiB7875

common.cH A D16-Apr-20177.9 KiB340240

common.hH A D16-Apr-2017916 5035

config.guessH A D16-Apr-201743.8 KiB1,5271,315

config.h.inH A D16-Apr-20173 KiB11578

config.subH A D16-Apr-201732.6 KiB1,6591,514

configureH A D16-Apr-2017165.4 KiB5,8164,817

configure.acH A D16-Apr-20171.2 KiB4736

dafyomi.cH A D16-Apr-20173.4 KiB145120

dafyomi.hH A D16-Apr-2017140 95

danlib.cH A D16-Apr-20172.8 KiB11769

danlib.hH A D16-Apr-2017531 2113

dow.cH A D16-Apr-20175 KiB175119

error.cH A D16-Apr-20171.4 KiB5724

gnu.cH A D16-Apr-201717.3 KiB303301

greg.cH A D16-Apr-20175.6 KiB21697

greg.hH A D16-Apr-20171 KiB5141

hebcal.1.inH A D16-Apr-201713.6 KiB646639

hebcal.cH A D16-Apr-201717.7 KiB572416

hebcal.dspH A D16-Apr-20173.9 KiB129107

hebcal.dswH A D16-Apr-2017506 3019

hebcal.hH A D16-Apr-20173.9 KiB145102

holidays.cH A D16-Apr-201727.9 KiB992817

install-shH A D16-Apr-201713.7 KiB528351

myerror.hH A D16-Apr-2017246 136

parse_tz.cH A D16-Apr-201714.3 KiB531420

po2gperf.plH A D16-Apr-20173.2 KiB159129

sedra.cH A D16-Apr-201710.8 KiB345257

sedra.hH A D16-Apr-2017225 115

start.cH A D16-Apr-201729.2 KiB914797

strings_ashkenazi.cH A D16-Apr-20177.6 KiB224205

strings_fi.cH A D16-Apr-201719 KiB605584

strings_he.cH A D16-Apr-201721.1 KiB611590

strings_pl.cH A D16-Apr-201711.7 KiB368349

strings_ru.cH A D16-Apr-201720.5 KiB608587

test-driverH A D16-Apr-20174.2 KiB14084

timelib.cH A D16-Apr-20178.7 KiB326261

timelib.hH A D16-Apr-20176.8 KiB164100

timelib_structs.hH A D16-Apr-20177.9 KiB316246

timezonedb.hH A D16-Apr-20174.1 MiB48,04346,832

tm2unixtime.cH A D16-Apr-201712.4 KiB483371

translations.cH A D16-Apr-20172 KiB7060

translations.hH A D16-Apr-2017565 2716

unixtime2tm.cH A D16-Apr-20177.5 KiB297206

README.md

1hebcal [![Build Status](https://travis-ci.org/hebcal/hebcal.png?branch=master)](https://travis-ci.org/hebcal/hebcal)
2======
3
4A perpetual Jewish Calendar
5
6by Danny Sadinoff
7portions by Michael J. Radwin
8
9## Description
10Hebcal is a program which prints out the days in the Jewish calendar
11for a given Gregorian year.  Hebcal is fairly flexible in terms of which
12events in the Jewish calendar it displays.  Each of the following can
13be individualy turned on or off:
14
15* The Hebrew date
16* Jewish Holidays (including Yom Ha'atzmaut and Yom HaShoah etc.)
17* The weekly Sedrah
18* The day of the week
19* The days of the Omer
20
21## Synopsis
22
23```
24usage: hebcal [-8acdDeEFHhiorsStTwWyZ]
25            [-b candle_lighting_minutes_before_sundown ]
26            [-I file]
27            [-Y yahrtzeit_file]
28            [-C city]
29            [-L longitude -l latitude]
30            [-m havdalah_minutes_past_sundown ]
31            [-z timezone]
32            [[ month [ day ]] year ]
33       hebcal help
34       hebcal info
35       hebcal cities
36       hebcal warranty
37       hebcal copying
38```
39
40Hebcal prints out Hebrew calendars one solar year at a time.
41Given one argument, it will print out the calendar for that year.
42Given two numeric arguments `mm yyyy`, it prints out the calendar for
43month `mm` of year `yyyy`.
44
45For example, `hebcal -ho`
46will just print out the days of the omer for the current year.
47Note: Use COMPLETE Years.  You probably aren't interested in
48hebcal 93, but rather hebcal 1993.
49
50### Options
51Option | Description
52--- | ---
53-8 | Use 8-bit Hebrew (ISO-8859-8-Logical).
54-a | Use Ashkenazi Hebrew.
55-b mins | Set candle-lighting to occur this many minutes before sundown
56-c | Print candlelighting times.
57-C city | Set latitude, longitude, and timezone according to specified city. This option implies the -c option.
58   -d | print the Hebrew date for the entire date range.
59   -D | print the Hebrew date for dates with some events
60   -e | Output "European" dates -- DD.MM.YYYY format.
61   -E | Output 24-hour times (e.g. 18:37 instead of 6:37).
62   -F | Output the Daf Yomi for the entire date range.
63   -h | Suppress default holidays.
64   -H | Use Hebrew date ranges - only needed when e.g. `hebcal -H 5373`
65   -i | Use Israeli sedra scheme.
66   -I file | Get non-yahrtzeit Hebrew user events from specified file. The format is: `mmm dd string`, Where `mmm` is a Hebrew month name.
67   -l xx,yy | Set the latitude for solar calculations to `xx` degrees and `yy` minutes.  Negative values are south.
68   -L xx,yy | Set the longitude for solar calculations to `xx` degrees and `yy` minutes.  *Negative values are EAST*. The `-l` and `-L` switches must both be used, or not at all. These switches override the `-C` (localize to city) switch.
69   --lang LANG | Use ISO 639-1 LANG code (one of "he", "ru", "pl", or "fi")
70   -m mins | Set havdalah to occur this many minutes after sundown
71   -M | Print the molad on shabbat mevorchim.
72   -o | Add days of the omer.
73   -O | Output sunrise and sunset times every day.
74   -r | Tab delineated format.
75   -s | Add weekly sedrot on Saturday.
76   -S | Print sedrah of the week on all calendar days.
77   -t | Only output for today's date.
78   -T | Print today's pertinent information, no Gregorian date.
79   -w | Add day of the week.
80   -W | Weekly view. Omer, dafyomi, and non-date-specific zemanim are shown once a week, on the day which corresponds to the first day in the range.
81   -x | Suppress Rosh Chodesh.
82   -y | Print only last two digits of year.
83   --years N | Generate events for `N` years (default `1`)
84   -Y file | Get yahrtzeit dates from specified file. The format is: `mm dd yyyy string`. The first three fields specify a *Gregorian* date.
85   -z timezone | Use specified timezone, overriding the `-C` (localize to city) switch.
86   -Z | **EXPERIMENTAL** Add zemanim (Alot HaShachar; Misheyakir; Kriat Shema, sof zeman; Tefilah, sof zeman; Chatzot hayom; Mincha Gedolah; Mincha Ketanah; Plag HaMincha; Tzait HaKochavim)
87   --help | Show help text
88   --version | Show version number
89
90## Candle-lighting times
91
92Hebcal’s candlelighting times are only approximations. If you ever have any doubts about it’s times, consult your local halachic authority. If you enter geographic coordinates above the artic circle or antarctic circle, the times are guaranteed to be wrong.
93
94Hebcal contains a small database of cities with their associated geographic information and time-zone information. The geographic and time information necessary to calculate sundown times can come to hebcal any of three ways:
95
961. The default: the system manager sets a default city when the program is compiled.
972. Hebcal looks in the environment variable `HEBCAL_CITY` for the name of a city in hebcal’s database, and if it finds one, hebcal will make that the new default city.
983. 1 and 2 may be overridden by command line arguments, including those specified in the `HEBCAL_OPTS` environment variable. The most natural way to do this is to use the `−c city` command. This will localize hebcal to city. A list of the cities hebcal knows about can be obtained by typing `hebcal cities` at the command prompt. If the city you want isn’t on that list, you can directly control hebcal’s geographic information with the `−l`, `−L`, and `−z` switches. Note that changing the geographic coordinates causes the timezone to default to 'UTC'.
99For a status report on customizations, type `hebcal info` at the command prompt.
100
101## Environment
102
103Hebcal uses two environment variables:
104<dl>
105<dt>HEBCAL_CITY
106<dd>Hebcal uses this value as the default city for sunset calculations. A list of available cities is available with from hebcal with the command: <code>hebcal cities</code>
107<dt>HEBCAL_OPTS
108<dd>The value of this variable is automatically processed as if it were typed at the command line before any other actual command-line arguments.
109</dl>
110
111## Author
112Danny Sadinoff
113
114With contributions from
115
116* Michael J. Radwin
117* Eyal Schachter (JavaScript port)
118* Aaron Peromsik (Daf Yomi, experimental zmanim feature)
119* Ben Sandler (Molad and daily Sunrise/Sunset features)
120
121## See Also
122
123calendar(1), emacs(1), hcal(1), hdate(1), omer(1), remind(1), rise(1)
124
125The latest version of the code will be available from https://github.com/hebcal/hebcal
126
127The original motivation for the algorithms in this program was the _Tur Shulchan Aruch_.
128
129For version 3, much of the program was rewritten using Emacs 19’s calendar routines by Edward M. Reingold and Nachum Dershowitz. Their program is extremely clear and provides many instructive examples of fine calendar code in emacs-LISP.
130
131For version 4, candle-lighting times were rewritting using Derick Rethans's [timelib](https://github.com/derickr/timelib).
132
133A well written treatment of the Jewish calendar for the layman can be found in _Understanding the Jewish Calendar_ by Rabbi Nathan Bushwick. A more complete bibliography on the topic can be found there, as well as in the _Encyclopedia Judaica_ entry on the calendar.
134
135
136## Diagnostics
137<dl>
138<dt>hebcal help
139<dd>Prints a shorter version of this manpage, with comments on each option.
140<dt>hebcal info
141<dd>Prints the version number and default values of the program.
142<dt>hebcal cities
143<dd>Prints a list of cities which hebcal knows about, suitable as arguments to the −C city option.
144<dt>hebcal copying
145<dd>Prints the GNU license, with information about copying the program. See below.
146<dt>hebcal warranty
147<dd>Tells you how there’s NO WARRANTY for hebcal.
148</dl>
149
150## Disclaimer
151This is just a program I wrote during summer school and while avoiding my senior project. It should not be invested with any sort of halachic authority.
152
153## Bugs
154Hebrew dates are only valid before sundown on that secular date. An option to control this will be added in a later release.
155
156Negative longitudes are EAST of Greenwich.
157
158Some combinations of options produce weird results, e.g.
159  `hebcal -dH nisan 5744`
160  `hebcal -dH 5744`
161This comes into play when you use the *HEBCAL_OPTS* environment variable.
162
163The sunup/sundown routines aren’t accurate enough. If you enter geographic coordinates above the artic circle or antarctic circle, the times are guaranteed to be wrong.
164
165Hebcal only translates between the Gregorian calendar and the Jewish calendar. This means that the results will be at least partly useless where and when the Gregorian calendar was not used, e.g. before the 1752 in Britain and before circa 1918 in Russia. See ["Daylight saving time" on Wikipedia](https://en.wikipedia.org/wiki/Daylight_saving_time) for a splendid chart depicting when the changeover from the Julian to the Gregorian calendars occurred in various places.
166
167Hebcal cannot handle date computations before 2 C.E. sorry.
168
169## Build & Install
170
171To build hebcal from the source repository, you'll need a few more tools than are needed in order to build from distributions. In particular, you'll need
172
173* GNU autoconf version 2.59
174* GNU automake version 1.9.5  or later
175* GNU m4 version 1.4.3 or later
176* GNU make v3.79 or later
177* Perl v5.0 or later
178
179Once you have those, you can prepare the build environment as follows:
180
181```
182aclocal && autoconf && automake --foreign --add-missing && ./configure && make
183```
184
185If you would like customize the program for your city, pass additional options to `configure` above.
186
187Examine `cities.h`.  If your city is in there, run `configure` using the
188  `--with-default-city=CITYNAME` option as follows:
189   ```
190   ./configure --with-default-city=Chicago
191   ```
192you may have to quote spaces:
193   ```
194   ./configure --with-default-city="Los Angeles"
195   ```
196
197If your city is NOT on the list, then in order to customize hebcal to your city, you will need to pass it the latitude, longitude, and timezone (see the manual).
198
199Suppose you live in Oshkosh, Wisconsin.
200Your lattitude is 44d1'29", and your longitude is 88d32'33".
201You are in timezone `America/Chicago`.
202We'll round the geographic coordinates to the nearest minute.
203
204In order to get candlelighting times for the current year, you would type
205  ```
206  hebcal -ch -l44,1 -L 88,33 -z America/Chicago
207  ```
208
209Now this can get rough on the fingers if you do it a lot, so the `HEBCAL_OPTS` environment variable is available for you to use.  Every time hebcal is run, it checks this variable.  If it is non-empty, the arguments in that variable are read as though they were typed at the command line before the ones you actually type.
210
211So you might set `HEBCAL_OPTS` to be
212   ```
213   -l44,1 -L 88,33 -z America/Chicago
214   ```
215and if you type
216    ```
217    hebcal -ch
218    ```
219hebcal will think you typed
220    ```
221    hebcal -l44,1 -L 88,33 -z America/Chicago -ch
222    ```
223
224REMEMBER: negative longitudes are EAST of Greenwich.
225
226For information on setting environment variables, consult your local guru.
227
228Once an install is complete, there are three ways to change cities, or pick a city not on the list:
229
2301. change the `CITY` environment variable
2312. change the `HEBCAL_OPTS` variable to reflect the new city's coordinates.
2323. pass a `-C city` argument to hebcal.
233
234You can check where hebcal thinks it is by typing
235    `hebcal info`
236at the command line.
237
238
239## DISTRIBUTION
240   Copyright (C) 1994-2011  Danny Sadinoff
241   Portions Copyright (c) 2011 Michael J. Radwin. All Rights Reserved.
242
243   Hebcal is distributed under the GNU Public License.  The program
244   and its source code may be freely distributed.  For details, see
245   the file COPYING in the distribution.
246
247   If you are going to use this program, please drop me a line.
248   I'd like to know who you are, what version you're using, and how
249   you're using hebcal, and anything else you'd like to tell me, so
250   that I can adjust the program to meet users' needs.
251
252   I am NOT demanding payment for the use of my program, but writing
253   this program DID take time.  The "free" in the GNU public license
254   refers to distribution, not necessarily payment. Feel free to send
255   $10 or multiples of $18 or just a postcard to me at my US Mail
256   address (email me for it).
257
258      send email to:
259      danny@sadinoff.com
260
261