https://github.com/yparitcher/libzmanim
C library for zmanim & hebrew calendar
https://github.com/yparitcher/libzmanim
c hebrew-calendar hebrew-date jewish jewish-holidays zmanim
Last synced: about 2 months ago
JSON representation
C library for zmanim & hebrew calendar
- Host: GitHub
- URL: https://github.com/yparitcher/libzmanim
- Owner: yparitcher
- License: other
- Created: 2018-06-18T22:33:33.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2023-09-03T09:37:30.000Z (almost 2 years ago)
- Last Synced: 2025-03-25T12:21:51.574Z (2 months ago)
- Topics: c, hebrew-calendar, hebrew-date, jewish, jewish-holidays, zmanim
- Language: C
- Homepage:
- Size: 328 KB
- Stars: 13
- Watchers: 3
- Forks: 8
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-jewish-github - yparitcher/libzmanim - C library for zmanim & hebrew calendar (Projects / Zmanim)
README
# Libzmanim
a C library for zmanim and hebrew dates
a port of [KosherJava/Zmanim](https://github.com/KosherJava/zmanim) developed by Eliyahu Hershfeld. [https://kosherjava.com](https://kosherjava.com)
## Installation
run ` make` to build the library (shared and static) in the lib folder.
run `make test` to build a test wrapper (in the test folder) to display the daily zmanim.
this creates a shared and static library that can be used by including the header files in `include` and linking with `-lzmanim` (you must add the library and headers to your `PATH`)
### Windows
run window.bat in a VisualStudio command prompt to build `libzmanim.dll` and `test.exe`. This uses the OpenBSD stpncpy.
## Usage
this library has a new struct `hdate` which is like `struct tm` used to store a date instance in the hebrew calendar.
one can initialize the members directly or use the `hdate convertDate(struct tm date)` function to convert a gregorian date, along with other functions in `hebrewcalendar.c` to manipulate it or get yomtov parshah etc.
for more documentation read the header files.
to format the date in hebrew use the functions in `hdateformat.h`.
one can then use this `hdate` along with the `location` struct (lat, long, elevation) in one of the getzmanim functions in `zmanim.h` that return a `hdate` with the correct zman.
for further examples see the test.c file that implements a basic wrapper to show daily zmanim
### Test usage
./test year month day latitude longitude timezone Eretz_Yisroel
```
./test 2018 12 18 40.66896 -73.94284 -4.0 0י טבת תשע״ט
עשרה בטבת
פרשת ויחי
alos: 05:41 AM EST
misheyakir: 06:19 AM EST
sunrise: 07:14 AM EST
shma: 09:31 AM EST
tefila: 10:18 AM EST
chatzos: 11:52 AM EST
mincha gedola: 12:15 PM EST
mincha ketana: 02:37 PM EST
plag hamincha: 03:36 PM EST
sunset: 04:30 PM EST
tzais: 05:01 PM EST
```note: due to the limitations of the C standard library all times will show as if they in the computers timezone even though they are correctly calculated in the given timezone.
## License
Libzmanim is Copyright (c) 2018 [Yparitcher](https://github.com/yparitcher).
licensed under the [LGPL 2.1](https://opensource.org/licenses/LGPL-2.1) license.