pub struct HoursUtc(/* private fields */);Expand description
Hours since midnight UTC that can extend beyond a single day.
Used for sunrise/sunset times without the chrono dependency. Values represent hours since midnight UTC (0 UT) for the calculation date:
- Negative values indicate the previous day
- 0.0 to < 24.0 indicates the current day
- ≥ 24.0 indicates the next day
§Example
let morning = HoursUtc::from_hours(6.5); // 06:30 current day
let late_evening = HoursUtc::from_hours(23.5); // 23:30 current day
let after_midnight = HoursUtc::from_hours(24.5); // 00:30 next day
let before_midnight_prev = HoursUtc::from_hours(-0.5); // 23:30 previous dayImplementations§
Source§impl HoursUtc
impl HoursUtc
Sourcepub const fn from_hours(hours: f64) -> Self
pub const fn from_hours(hours: f64) -> Self
Creates a new HoursUtc from hours since midnight UTC.
Values can be negative (previous day) or ≥ 24.0 (next day).
Sourcepub const fn hours(&self) -> f64
pub const fn hours(&self) -> f64
Gets the raw hours value.
Can be negative (previous day) or ≥ 24.0 (next day).
Sourcepub fn day_and_hours(&self) -> (i32, f64)
pub fn day_and_hours(&self) -> (i32, f64)
Gets the day offset (-1, 0, or 1) and normalized hours (0.0 to < 24.0).
§Returns
Tuple of (day_offset, hours_in_day) where:
day_offset: -1 = previous day, 0 = current day, 1 = next dayhours_in_day: 0.0 to < 24.0
§Example
let time = HoursUtc::from_hours(25.5);
let (day_offset, hours) = time.day_and_hours();
assert_eq!(day_offset, 1);
assert!((hours - 1.5).abs() < 1e-10);Trait Implementations§
impl Copy for HoursUtc
impl StructuralPartialEq for HoursUtc
Auto Trait Implementations§
impl Freeze for HoursUtc
impl RefUnwindSafe for HoursUtc
impl Send for HoursUtc
impl Sync for HoursUtc
impl Unpin for HoursUtc
impl UnwindSafe for HoursUtc
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more