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}