package Ġcom . silver het ch . clo tho . algorithm Ċ Ċ import Ġcom . silver het ch . clo tho . Source Ċ import Ġjava . util .* Ċ import Ġjava . util . Calendar .* Ċ Ċ /** Ċ Ġ* ĠDecor ator Ġto Ġfind Ġthe Ġgiven Ġdate Ġrange Ġin Ġmilli second , Ċ Ġ* ĠJust Ġmake Ġthe Ġrange Ġto Ġcover Ġentire Ġof Ġday Ġas Ġpossible . Ċ Ġ* Ċ Ġ* Ġ@ param Ġrange ĠThe Ġgiven Ġrange Ġin Ġmilliseconds , ĠFirst Ġone Ġis ĠEn ded ĠDate , Ġand Ġthe Ġseconds Ġone Ġis ĠStarted Ġdate . Ċ Ġ*/ Ċ class ĠDate Range Source ( private Ġval Ġtime Zone : ĠTime Zone , Ġprivate Ġval Ġrange : ĠSource < Pair < Long , ĠLong >>) Ġ: ĠSource < Pair < Long , ĠLong >> Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġvalue (): ĠPair < Long , ĠLong > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġrange . value () ĊĠĠĠĠĠĠĠ Ġreturn ĠPair ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCalendar . getInstance ( time Zone ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Ġ= ĠDate ( value . first ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset ( HOUR _ OF _ DAY , Ġ 2 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset ( MINUTE , Ġ 5 9 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset ( SECOND , Ġ 5 9 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. time In Millis , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCalendar . getInstance ( time Zone ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Ġ= ĠDate ( value . second ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset ( HOUR _ OF _ DAY , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset ( MINUTE , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset ( SECOND , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. time In Millis ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }