added common business date acronyms

This commit is contained in:
Ravi Sawlani 2021-08-24 22:26:30 +05:30
parent c8533c86f5
commit 4a3b19bba6
No known key found for this signature in database
GPG key ID: 09B68603EEB0638A

View file

@ -154,11 +154,18 @@ fn named_date<Tz: TimeZone>(
move |input: &str| {
let local_today = now.with_timezone(&local).date();
let remaining = &input[input.len()..];
let day_index = local_today.weekday().num_days_from_monday();
match input {
"yesterday" => Ok((remaining, local_today - Duration::days(1))),
"today" => Ok((remaining, local_today)),
"tomorrow" => Ok((remaining, local_today + Duration::days(1))),
// TODO: lots more!
"eod"=>Ok((remaining,local_today+Duration::days(1))),
"sod"=>Ok((remaining,local_today)),
"eow"=> Ok((remaining,local_today+Duration::days((6-day_index).into()))),
"eoww"=>Ok((remaining,local_today+Duration::days((5-day_index).into()))),
"sow"=>Ok((remaining,local_today+Duration::days((6-day_index).into()))),
"soww"=>Ok((remaining,local_today+Duration::days((7-day_index).into()))),
_ => Err(Err::Error(Error::new(input, ErrorKind::Tag))),
}
.map(|(rem, dt)| (rem, dt.and_hms(0, 0, 0).with_timezone(&Utc)))