stdin/
stdin.rs

1use std::io::stdin;
2
3use chrono::Local;
4use human_date_parser::ParseResult;
5
6fn main() {
7    let mut buffer = String::new();
8    let stdin = stdin();
9
10    println!("Describe a date or time:");
11    loop {
12        buffer.clear();
13        stdin.read_line(&mut buffer).unwrap();
14        let now = Local::now().naive_local();
15        let result = match human_date_parser::from_human_time(&buffer, now) {
16            Ok(time) => time,
17            Err(e) => {
18                println!("{e}");
19                continue;
20            }
21        };
22
23        let now = Local::now();
24
25        match result {
26            ParseResult::DateTime(datetime) => {
27                println!("Time now: {now}");
28                println!("Time then: {datetime}\n");
29            }
30            ParseResult::Date(date) => println!("Date: {date}\n"),
31            ParseResult::Time(time) => println!("Time: {time}\n"),
32        };
33    }
34}