Skip to main content

astronomical/
astronomical.rs

1//! Example of using [`astronomical_calculator`] to calculate sunrise, noon,
2//! solar position, etc
3
4use jiff::{Zoned, tz::TimeZone};
5use rust_zmanim::prelude::*;
6
7fn main() {
8    let jerusalem = TimeZone::get("Asia/Jerusalem").unwrap();
9    let today = Zoned::now().date();
10
11    // your location here
12    let kosel = GeoLocation::new(31.777, 35.234, 700.0, jerusalem).unwrap();
13
14    let dawn = astronomical_calculator::sunrise_offset_by_degrees(
15        today,
16        &kosel,
17        astronomical_calculator::ASTRONOMICAL_ZENITH,
18    )
19    .unwrap();
20    let sunrise = astronomical_calculator::sunrise(today, &kosel).unwrap();
21    let noon = astronomical_calculator::solar_noon(today, &kosel).unwrap();
22
23    // where the sun is right now
24    let now = Zoned::now();
25    let azimuth = astronomical_calculator::solar_azimuth(&now, &kosel);
26    let elevation = astronomical_calculator::solar_elevation(&now, &kosel);
27
28    println!(
29        "
30dawn:     {dawn}
31sunrise:  {sunrise}
32noon:     {noon}
33
34solar azimuth now:   {azimuth:.2} deg
35solar elevation now: {elevation:.2} deg
36"
37    )
38}