5 stable releases

Uses new Rust 2024

1.2.1 Mar 12, 2025
1.2.0 Mar 9, 2025
1.1.0 Mar 9, 2025
1.0.1 Jun 21, 2023
1.0.0 Dec 15, 2018

#24 in Date and time

Download history 1766/week @ 2024-12-05 1910/week @ 2024-12-12 1596/week @ 2024-12-19 2219/week @ 2024-12-26 2306/week @ 2025-01-02 3177/week @ 2025-01-09 3809/week @ 2025-01-16 2861/week @ 2025-01-23 2334/week @ 2025-01-30 35677/week @ 2025-02-06 84580/week @ 2025-02-13 100580/week @ 2025-02-20 116834/week @ 2025-02-27 103978/week @ 2025-03-06 94305/week @ 2025-03-13 62568/week @ 2025-03-20

395,869 downloads per month
Used in 8 crates

MIT license

35KB
491 lines

sunrise

This crate provides a function for calculating sunrise and sunset times using this method.

You can enable the no-std feature if you need it to work in such a context, it will rely on libm instead.

Usage

In order to perform the calculation, you'll need to provide the following:

  • the date for which you wish to calculate the times
  • the latitude and longitude of the location

Begin by adding this crate to Cargo.toml:

[dependencies]
sunrise = "1.2"

You can use the SolarDay struct to perform computation of an event at a particular place and time:

use chrono::NaiveDate;
use sunrise::{Coordinates, SolarDay, SolarEvent, DawnType};

// January 1, 2016 in Toronto
let date = NaiveDate::from_ymd_opt(2016, 1, 1).unwrap();
let coord = Coordinates::new(43.6532, -79.3832).unwrap();

let dawn = SolarDay::new(coord, date)
    .with_altitude(54.)
    .event_time(SolarEvent::Dawn(DawnType::Civil));

Dependencies

~1–1.3MB
~20K SLoC