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 and normalized hours (0.0 to < 24.0).
§Returns
Tuple of (day_offset, hours_in_day) where:
day_offset: whole days offset from the calculation date (negative = previous days, positive = following days)hours_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§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
🔬This is a nightly-only experimental API. (
clone_to_uninit)