blob: 10cf6d306617704d5171998d780b60a308fe0d75 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
use chrono::{NaiveTime, Timelike};
pub fn pprint(t: NaiveTime) -> String {
if t.minute() == 0 {
format!("{}h", t.hour())
} else {
format!("{}h{}", t.hour(), t.minute())
}
}
pub fn parse(t: &str) -> Option<NaiveTime> {
match t.split('h').collect::<Vec<&str>>()[..] {
[hours, minutes] => {
if minutes.trim().is_empty() {
NaiveTime::from_hms_opt(hours.parse().ok()?, 0, 0)
} else {
NaiveTime::from_hms_opt(hours.parse().ok()?, minutes.parse().ok()?, 0)
}
}
_ => None,
}
}
|