ddapi_rs/util/
time.rs

1/// Converts seconds to hours with 2 decimal places precision
2///
3/// # Examples
4/// ```
5/// use ddapi_rs::util::time::seconds_to_hours;
6///
7/// assert_eq!(seconds_to_hours(3600), 1.0);  // 1 hour
8/// assert_eq!(seconds_to_hours(5400), 1.5);  // 1.5 hours
9/// assert_eq!(seconds_to_hours(3672), 1.02); // 1.02 hours
10/// ```
11pub fn seconds_to_hours<T: Into<f64>>(seconds: T) -> f64 {
12    seconds_to_hours_precision(seconds, 2)
13}
14
15/// Converts seconds to hours with specified decimal places precision
16///
17/// # Examples
18/// ```
19/// use ddapi_rs::util::time::seconds_to_hours_precision;
20///
21/// assert_eq!(seconds_to_hours_precision(3661, 2), 1.02);  // 2 decimal places
22/// assert_eq!(seconds_to_hours_precision(3661, 3), 1.017); // 3 decimal places
23/// ```
24pub fn seconds_to_hours_precision<T: Into<f64>>(seconds: T, decimal_places: u32) -> f64 {
25    let factor = 10_f64.powi(decimal_places as i32);
26    let hours = seconds.into() / 3600.0;
27    (hours * factor).round() / factor
28}