package Ġcom . die go be z erra . core . util Ċ Ċ import Ġandroid . text . format . Date Utils Ċ import Ġcom . die go be z erra . core . cin em ais . domain . model . DateRange Ċ import Ġjava . util . Calendar Ċ import Ġjava . util . Calendar . DATE Ċ import Ġjava . util . Calendar . DAY _ OF _ WEEK Ċ import Ġjava . util . Calendar . HOUR Ċ import Ġjava . util . Calendar . HOUR _ OF _ DAY Ċ import Ġjava . util . Calendar . MILLI SECOND Ċ import Ġjava . util . Calendar . MINUTE Ċ import Ġjava . util . Calendar . MONTH Ċ import Ġjava . util . Calendar . SECOND Ċ import Ġjava . util . Calendar . TH UR SD AY Ċ import Ġjava . util . Calendar . W ED N ES DAY Ċ import Ġjava . util . Calendar . WEEK _ OF _ MONTH Ċ import Ġjava . util . Calendar . YEAR Ċ import Ġjava . util . Calendar . getInstance Ċ import Ġjava . util . Date Ċ import Ġjava . util . Locale Ċ Ċ class ĠDate Utils Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval ĠB RA Z IL Ġ= ĠLocale (" pt ", Ġ" BR ") ĊĊĠĠĠĠĠĠĠ Ġfun Ġplaying Range ( date : ĠDate ? Ġ= Ġnull ): ĠDate Range Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstart Ġ= Ġcalendar At Start OfDay ( date ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġend Ġ= Ġcalendar At Start OfDay ( date ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinit Ġ= Ġcalendar At Start OfDay ( date ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( init . get ( DAY _ OF _ WEEK ) Ġ< ĠTH UR SD AY ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( WEEK _ OF _ MONTH , Ġ- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset ( DAY _ OF _ WEEK , ĠTH UR SD AY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend . set ( DAY _ OF _ WEEK , ĠW ED N ES DAY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart . set ( DAY _ OF _ WEEK , ĠTH UR SD AY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( WEEK _ OF _ MONTH , Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset ( DAY _ OF _ WEEK , ĠW ED N ES DAY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠDate Range ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġstart . time , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġend . time ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġcalendar At Start OfDay ( date : ĠDate ? Ġ= Ġnull ): ĠCalendar Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠgetInstance (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate ?. let Ġ{ Ġtime Ġ= Ġdate Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset ( HOUR , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset ( HOUR _ OF _ DAY , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset ( MINUTE , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset ( SECOND , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset ( MILLI SECOND , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġis Today (` when `: ĠLong ) Ġ= ĠDate Utils . is Today (` when `) ĊĊĠĠĠĠĠĠĠ Ġfun Ġis Tom orrow (` when `: ĠLong ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwhen Calendar Ġ= ĠgetInstance (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime In Millis Ġ= Ġ` when ` ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtomorrow Ġ= ĠgetInstance (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( DATE , Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġis Same Day ( when Calendar , Ġtomorrow ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠReturns Ġtrue Ġonly Ġif Ġb ĠCalendar Ġcorresponds Ġto Ġtomorrow Ġof Ġa ĠCalendar ĊĠĠĠĠĠĠĠ Ġfun Ġis Tom orrow ( a : ĠCalendar , Ġb : ĠCalendar ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcloned Ġ= ĠgetInstance (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime In Millis Ġ= Ġa . time In Millis ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( DATE , Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġis Same Day ( cloned , Ġb ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġis Same Day ( a : ĠCalendar , Ġb : ĠCalendar ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġa . get ( DATE ) Ġ== Ġb . get ( DATE ) Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa . get ( MONTH ) Ġ== Ġb . get ( MONTH ) Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa . get ( YEAR ) Ġ== Ġb . get ( YEAR ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ