package Ġcom . blue an vil Ċ Ċ import Ġjava . time . Duration Ċ Ċ /** Ċ Ġ* Ġ@ author ĠCos min ĠM arg ine an Ċ Ġ*/ Ċ fun ĠDuration . to Human Readable String (): ĠString Ġ{ ĊĠĠĠ Ġval Ġmillis Value Ġ= Ġthis . to Millis () ĊĠĠĠ Ġif Ġ( millis Value Ġ== Ġ 0 L ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" 0 ms " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġdays Ġ= Ġmillis Value Ġ/ ĠDAY ĊĠĠĠ Ġvar Ġremainder D Ġ= Ġmillis Value Ġ- Ġdays Ġ* ĠDAY ĊĊĠĠĠ Ġval Ġhours Ġ= Ġremainder D Ġ/ ĠHO UR ĊĠĠĠ Ġvar Ġremainder H Ġ= Ġremainder D Ġ- Ġhours Ġ* ĠHO UR ĊĊĠĠĠ Ġval Ġminutes Ġ= Ġremainder H Ġ/ ĠMIN ĊĠĠĠ Ġval Ġremainder M Ġ= Ġremainder H Ġ- Ġminutes Ġ* ĠMIN ĊĊĠĠĠ Ġval Ġseconds Ġ= Ġremainder M Ġ/ ĠSE C ĊĠĠĠ Ġval Ġremainder S Ġ= Ġremainder M Ġ- Ġseconds Ġ* ĠSE C ĊĊĠĠĠ Ġval Ġmilliseconds Ġ= Ġremainder S Ġ/ ĠMS ĊĠĠĠ Ġval Ġelements Ġ= ĠlistOf ("${ days } d ", Ġ"${ hours } h ", Ġ"${ minutes } m ", Ġ"${ seconds } s ", Ġ"${ milliseconds } ms ") ĊĠĠĠ Ġval Ġstart Ġ= Ġelements . indexOf First Ġ{ Ġit [ 0 ] Ġ!= Ġ' 0 ' Ġ} ĊĠĠĠ Ġval Ġend Ġ= Ġelements . indexOf Last Ġ{ Ġit [ 0 ] Ġ!= Ġ' 0 ' Ġ} ĊĠĠĠ Ġreturn Ġelements . sub List ( start , Ġend Ġ+ Ġ 1 ). join ToString (" Ġ") Ċ } Ċ