example/
example.rs

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}