1use yonsei_flexible::{
2 time::HMS,
3 cond::Interval,
4 calc::calc_work_time,
5};
6
7fn main() {
8 let example_inputs = r#"
9 10:00:00 - 17:00:00
10 10:00:00 - 21:00:00
11 11:15:00 - 17:00:00
12 11:45:00 - 17:00:00
13 12:15:00 - 17:00:00
14 12:45:00 - 17:00:00
15 11:15:00 - 18:15:00
16 11:45:00 - 18:15:00
17 12:15:00 - 18:15:00
18 12:45:00 - 18:15:00
19 11:15:00 - 18:45:00
20 11:45:00 - 18:45:00
21 12:15:00 - 18:45:00
22 12:45:00 - 18:45:00
23 11:15:00 - 19:15:00
24 11:45:00 - 19:15:00
25 12:15:00 - 19:15:00
26 12:45:00 - 19:15:00
27 11:15:00 - 19:45:00
28 11:45:00 - 19:45:00
29 12:15:00 - 19:45:00
30 12:45:00 - 19:45:00
31 "#;
32
33 let inputs = example_inputs
34 .lines()
35 .filter(|line| !line.trim().is_empty())
36 .map(|line| {
37 let mut iter = line.split("-");
38 let start = iter.next().unwrap().trim();
39 let end = iter.next().unwrap().trim();
40 Interval::new(HMS::parse(start).unwrap(), HMS::parse(end).unwrap())
41 })
42 .collect::<Vec<_>>();
43
44 for input in inputs {
45 println!("==================================================");
46 println!("Input: {} - {}", input.start_time, input.end_time);
47 println!("Total time: {}", input.get_duration());
48 println!("Work time: {}", calc_work_time(input));
49 println!("==================================================");
50 println!("");
51 }
52}