extern crate chrono;
extern crate timespan;
use chrono::NaiveTime;
use timespan::NaiveTimeSpan;
fn usage() {
println!(
"Please provide exactly 4 arguments!
Usage: [span] [span_fmt] [start_fmt] [end_fmt]"
);
}
fn main() {
let mut args = std::env::args();
if args.len() != 5 {
usage();
std::process::exit(1);
}
args.next();
let s = args.next().unwrap();
let span_fmt = args.next().unwrap();
let start_fmt = args.next().unwrap();
let end_fmt = args.next().unwrap();
let span = match NaiveTimeSpan::parse_from_str(
s.as_str(),
span_fmt.as_str(),
start_fmt.as_str(),
end_fmt.as_str(),
) {
Ok(s) => s,
Err(e) => {
println!("An error occured: {}", e);
std::process::exit(2);
}
};
let duration =
NaiveTime::from_num_seconds_from_midnight(span.duration().num_seconds() as u32, 0);
println!("duration for {}: {}", span, duration);
}