@@ -126,9 +126,9 @@ impl Parser<'_> {
126126 "minutes" | "minute" | "min" | "mins" | "m" => ( n. mul ( 60 ) ?, 0 ) ,
127127 "hours" | "hour" | "hr" | "hrs" | "h" => ( n. mul ( 3600 ) ?, 0 ) ,
128128 "days" | "day" | "d" => ( n. mul ( 86400 ) ?, 0 ) ,
129- "weeks" | "week" | "w" => ( n. mul ( 86400 * 7 ) ?, 0 ) ,
129+ "weeks" | "week" | "wk" | "wks" | " w" => ( n. mul ( 86400 * 7 ) ?, 0 ) ,
130130 "months" | "month" | "M" => ( n. mul ( 2_630_016 ) ?, 0 ) , // 30.44d
131- "years" | "year" | "y" => ( n. mul ( 31_557_600 ) ?, 0 ) , // 365.25d
131+ "years" | "year" | "yr" | "yrs" | " y" => ( n. mul ( 31_557_600 ) ?, 0 ) , // 365.25d
132132 _ => {
133133 return Err ( Error :: UnknownUnit {
134134 start,
@@ -206,11 +206,11 @@ impl Parser<'_> {
206206/// * `msec`, `ms` -- milliseconds
207207/// * `seconds`, `second`, `sec`, `s`
208208/// * `minutes`, `minute`, `min`, `m`
209- /// * `hours`, `hour`, `hr`, `h`
209+ /// * `hours`, `hour`, `hr`, `hrs`, ` h`
210210/// * `days`, `day`, `d`
211- /// * `weeks`, `week`, `w`
211+ /// * `weeks`, `week`, `wk`, `wks`, ` w`
212212/// * `months`, `month`, `M` -- defined as 30.44 days
213- /// * `years`, `year`, `y` -- defined as 365.25 days
213+ /// * `years`, `year`, `yr`, `yrs`, ` y` -- defined as 365.25 days
214214///
215215/// # Examples
216216///
@@ -360,6 +360,8 @@ mod test {
360360 assert_eq ! ( parse_duration( "365d" ) , Ok ( Duration :: new( 31_536_000 , 0 ) ) ) ;
361361 assert_eq ! ( parse_duration( "1week" ) , Ok ( Duration :: new( 604_800 , 0 ) ) ) ;
362362 assert_eq ! ( parse_duration( "7weeks" ) , Ok ( Duration :: new( 4_233_600 , 0 ) ) ) ;
363+ assert_eq ! ( parse_duration( "104wks" ) , Ok ( Duration :: new( 2 * 31_449_600 , 0 ) ) ) ;
364+ assert_eq ! ( parse_duration( "100wk" ) , Ok ( Duration :: new( 60_480_000 , 0 ) ) ) ;
363365 assert_eq ! ( parse_duration( "52w" ) , Ok ( Duration :: new( 31_449_600 , 0 ) ) ) ;
364366 assert_eq ! ( parse_duration( "1month" ) , Ok ( Duration :: new( 2_630_016 , 0 ) ) ) ;
365367 assert_eq ! (
@@ -372,6 +374,14 @@ mod test {
372374 parse_duration( "7years" ) ,
373375 Ok ( Duration :: new( 7 * 31_557_600 , 0 ) )
374376 ) ;
377+ assert_eq ! (
378+ parse_duration( "15yrs" ) ,
379+ Ok ( Duration :: new( 15 * 31_557_600 , 0 ) )
380+ ) ;
381+ assert_eq ! (
382+ parse_duration( "10yr" ) ,
383+ Ok ( Duration :: new( 10 * 31_557_600 , 0 ) )
384+ ) ;
375385 assert_eq ! ( parse_duration( "17y" ) , Ok ( Duration :: new( 536_479_200 , 0 ) ) ) ;
376386 }
377387
0 commit comments