package Ġcom . br uno . timed . timer Ċ Ċ import Ġjava . time . Duration Ċ import Ġjava . time . temporal . Ch rono Unit Ċ Ċ class ĠTime d Statistics ( ĊĠĠĠ Ġprivate Ġval Ġmin : ĠDuration Ġ= ĠDuration . of ( 9 9 9 , ĠCh rono Unit . DAYS ), ĊĠĠĠ Ġprivate Ġval Ġmax : ĠDuration Ġ= ĠDuration . of Nan os ( 0 ), ĊĠĠĠ Ġprivate Ġval Ġsum : ĠDuration Ġ= ĠDuration . ZERO , ĊĠĠĠ Ġprivate Ġval Ġcount : ĠLong Ġ= Ġ 0 Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġavg (): ĠDuration Ġ= Ġwhen ( count ) Ġ{ ĊĠĠĠĠĠĠĠĠ 0 L Ġ-> ĠDuration . ZERO ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsum . div ided By ( count ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmax () Ġ= Ġmax ĊĠĠĠ Ġfun Ġmin () Ġ= Ġmin ĊĠĠĠ Ġfun Ġsum () Ġ= Ġsum ĊĊĠĠĠ Ġfun Ġadd Time ( duration : ĠDuration ): ĠTime d Statistics Ġ= ĠTime d Statistics ( ĊĠĠĠĠĠĠĠ Ġmin Ġ= Ġget Min ( min , Ġduration ), ĊĠĠĠĠĠĠĠ Ġmax Ġ= ĠgetMax ( max , Ġduration ), ĊĠĠĠĠĠĠĠ Ġsum Ġ= Ġsum . plus ( duration ), ĊĠĠĠĠĠĠĠ Ġcount Ġ= Ġcount Ġ+ Ġ 1 ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ= Ġ""" ĊĠĠĠĠĠĠĠ Ġmin : Ġ${ min . to Millis ()} ĊĠĠĠĠĠĠĠ Ġmax : Ġ${ max . to Millis ()} ĊĠĠĠĠĠĠĠ Ġsum : Ġ${ sum . to Millis ()} ĊĠĠĠĠĠĠĠ Ġavg : Ġ${ avg (). to Millis ()} ĊĠĠĠĠĠĠĠ Ġcount : Ġ$ count ĊĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠ Ġprivate Ġfun ĠgetMax ( a : ĠDuration , Ġb : ĠDuration ) Ġ= Ġif Ġ( a Ġ> Ġb ) Ġa Ġelse Ġb ĊĠĠĠ Ġprivate Ġfun Ġget Min ( a : ĠDuration , Ġb : ĠDuration ) Ġ= Ġif Ġ( a Ġ< Ġb ) Ġa Ġelse Ġb Ċ } Ċ