Skip to main content

csv/
csv.rs

1//! Make a CSV of whichever zmanim you prefer.
2//! Good for making a chart - format in a spreadsheet editor
3use jiff::{civil, tz::TimeZone};
4use rust_zmanim::prelude::*;
5
6fn main() {
7    let new_york = TimeZone::get("America/New_York").unwrap();
8
9    let yeshiva = GeoLocation::new(40.8506041, -73.9297205, 0.0, new_york).unwrap();
10
11    println!(
12        "Date, Alos 19.8°, Alos 18°, Misheyakir 6.5°, Hanetz, SZKS, SZT, Chatzos, MG, MK, Plag, Shkia, Tzeis 6°"
13    );
14
15    let mut date = civil::date(2027, 1, 1);
16    let end = civil::date(2027, 12, 30);
17    let mut czc = ComplexZmanimCalendar::new(yeshiva, date, UseElevation::No);
18    while date <= end {
19        czc.set_date(date);
20
21        println!(
22            "{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}",
23            date,
24            czc.alos_19_8_degrees().unwrap().strftime("%H:%M:%S"),
25            czc.alos_18_degrees().unwrap().strftime("%H:%M:%S"),
26            czc.alos(&ZmanOffset::Degrees(6.5))
27                .unwrap()
28                .strftime("%H:%M:%S"),
29            czc.hanetz().unwrap().strftime("%H:%M:%S"),
30            czc.sof_zman_shema_gra().unwrap().strftime("%H:%M:%S"),
31            czc.sof_zman_tefila_gra().unwrap().strftime("%H:%M:%S"),
32            czc.chatzos_hayom().unwrap().strftime("%H:%M:%S"),
33            czc.mincha_gedola_gra().unwrap().strftime("%H:%M:%S"),
34            czc.mincha_ketana_gra().unwrap().strftime("%H:%M:%S"),
35            czc.plag_gra().unwrap().strftime("%H:%M:%S"),
36            czc.shkia().unwrap().strftime("%H:%M:%S"),
37            czc.tzeis_baal_hatanya().unwrap().strftime("%H:%M:%S"),
38        );
39
40        date = date.tomorrow().unwrap();
41    }
42}