package Ġuk . ac . war wick . cam cat . helpers Ċ Ċ import Ġhuman ize . Human ize . plural ize Ċ import Ġjava . time . Duration Ċ import Ġjava . time . Period Ċ Ċ object ĠDuration Formatter Ġ{ ĊĠ Ġfun Ġformat ( duration : ĠDuration ): ĠString Ġ{ ĊĠĠĠ Ġval Ġseconds Ġ= Ġduration . seconds ĊĠĠĠ Ġval Ġminutes Ġ= Ġ( seconds Ġ/ Ġ 6 0 ) Ġ% Ġ 6 0 ĊĠĠĠ Ġval Ġhours Ġ= Ġseconds Ġ/ Ġ 3 6 0 0 ĊĊĠĠĠ Ġreturn ( ĊĠĠĠĠĠ Ġplural ize (" 1 Ġhour ", Ġ"{ 0 } Ġhours ", Ġ"", Ġhours ) Ġ+ ĊĠĠĠĠĠ Ġplural ize (" Ġ 1 Ġminute ", Ġ" Ġ{ 0 } Ġminutes ", Ġ"", Ġminutes ) ĊĠĠĠ Ġ). trim () ĊĠ Ġ} ĊĊĠ Ġfun Ġduration In Days Or Week s ( code : ĠString ): ĠString ? Ġ= ĠPeriod . parse ( code )?. days ?. let Ġ{ Ġd Ġ-> ĊĠĠĠ Ġreturn Ġif Ġ( d Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠ Ġ" 1 Ġday " ĊĠĠĠ Ġ} Ġelse Ġif Ġ( d Ġ== Ġ 7 ) Ġ{ ĊĠĠĠĠĠ Ġ" 1 Ġweek " ĊĠĠĠ Ġ} Ġelse Ġif Ġ( d Ġ% Ġ 7 Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠ Ġ"${ d Ġ/ Ġ 7 } Ġweeks " ĊĠĠĠ Ġ} Ġelse Ġ"$ d Ġdays " ĊĠ Ġ} Ċ Ċ } Ċ