Skip to main content

systemtime/
systemtime.rs

1use common_range_tools::Intersector;
2use std::time::{Duration, UNIX_EPOCH};
3
4fn main() {
5    let min = UNIX_EPOCH;
6    let max = UNIX_EPOCH + Duration::from_millis(u64::MAX);
7    let step = Duration::from_secs(1);
8    let rebound = Duration::from_secs(1);
9
10    let mut isec = Intersector::any(step, rebound, min, max);
11
12    let mut pos = 0;
13    for _ in 1..=5 {
14        let start = UNIX_EPOCH + Duration::from_secs(pos);
15        let end = UNIX_EPOCH + Duration::from_secs(pos + 10);
16        pos += 5;
17        let range = start..=end;
18        isec.add_raw_range(range);
19    }
20    for r in isec.into_iter() {
21        let start = r.start().duration_since(UNIX_EPOCH).unwrap().as_secs();
22        let end = r.end().duration_since(UNIX_EPOCH).unwrap().as_secs();
23        println!("Start: {}, End: {}", start, end);
24    }
25}