use expectest::prelude::*;
use time::Tm;
pub (crate) fn get_tm(year: i32,
month: i32,
day: i32,
hour: i32,
minute: i32,
second: i32) -> Tm {
expect!(month).to(be_greater_or_equal_to(1));
expect!(month).to(be_less_or_equal_to(12));
expect!(day).to(be_greater_or_equal_to(1));
expect!(day).to(be_less_or_equal_to(31));
expect!(hour).to(be_greater_or_equal_to(0));
expect!(hour).to(be_less_than(24));
expect!(minute).to(be_greater_or_equal_to(0));
expect!(minute).to(be_less_than(60));
expect!(second).to(be_greater_or_equal_to(0));
expect!(second).to(be_less_or_equal_to(60));
Tm {
tm_sec: second,
tm_min: minute,
tm_hour: hour,
tm_mday: day,
tm_mon: month.saturating_sub(1), tm_year: year.saturating_sub(1900), tm_wday: 0, tm_yday: 0, tm_isdst: 0,
tm_utcoff: 0,
tm_nsec: 0,
}
}
pub (crate) fn normal(time: &Tm) -> Tm {
let mut tm = time.clone();
tm.tm_wday = 0;
tm.tm_yday = 0;
tm.tm_isdst = 0;
tm.tm_utcoff = 0;
tm.tm_nsec= 0;
tm
}