package Ġcom . github . js oc le . re ception ist Ċ Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ Ċ class ĠDate Range ( override Ġval Ġstart : ĠDate , Ġoverride Ġval Ġend : ĠDate ) Ġ: ĠClosed Range < Date >, ĠIterable < Date > Ġ{ ĊĠĠĠ Ġoverride Ġval Ġend Inclusive : ĠDate ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġend ĊĊĠĠĠ Ġoverride Ġfun Ġiterator (): ĠIterator < Date > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġobject Ġ: ĠIterator < Date > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġvar Ġcurrent Ġ= Ġthis @ DateRange . start . add ( Calendar . DATE , Ġ- 1 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġnext (): ĠDate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Ġ= Ġcurrent . add ( Calendar . DATE , Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcurrent ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhas Next (): ĠBoolean Ġ= Ġcurrent Ġ< Ġend ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ operator Ġfun ĠDate . range To ( end : ĠDate ): ĠClosed Range < Date > Ġ= ĠDate Range ( this , Ġend ) Ċ fun Ġ< T > ĠIterable < T >. forEach Chunk ed ( size : ĠInt , Ġoperation : Ġ( List < T >) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġvar Ġlist : ĠMutable List < T >? Ġ= Ġnull ĊĠĠĠ ĠforEach Indexed Ġ{ Ġi , Ġt Ġ-> ĊĠĠĠĠĠĠĠ Ġif Ġ( i Ġ% Ġsize Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist Ġ= ĠArrayList ( size ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġlist !!. add ( t ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( list !!. size Ġ== Ġsize ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperation ( list !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( list Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoperation ( list !! ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ val ĠDate . day OfWeek : ĠInt ĊĠĠĠ Ġget () Ġ= ĠCalendar . getInstance (). let Ġ{ Ġit . time Ġ= Ġthis ; Ġit . get ( Calendar . DAY _ OF _ WEEK ) Ġ} Ċ Ċ fun ĠDate . add ( field : ĠInt , Ġamount : ĠInt ): ĠDate Ġ{ ĊĠĠĠ Ġreturn ĠCalendar . getInstance (). let Ġ{ ĊĠĠĠĠĠĠĠ Ġit . time Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġit . add ( field , Ġamount ) ĊĠĠĠĠĠĠĠ Ġit . time ĊĠĠĠ Ġ} Ċ } Ċ Ċ val ĠDate . day OfMonth : ĠInt ĊĠĠĠ Ġget () Ġ= ĠCalendar . getInstance (). let Ġ{ Ġit . time Ġ= Ġthis ; Ġit . get ( Calendar . DAY _ OF _ MONTH ) Ġ} Ċ val ĠDate . mid night : ĠDate ĊĠĠĠ Ġget () Ġ= ĠCalendar . getInstance (). let Ġ{ ĊĠĠĠĠĠĠĠ Ġit . time Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġit . set ( Calendar . HOUR _ OF _ DAY , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġit . set ( Calendar . MINUTE , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġit . set ( Calendar . SECOND , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġit . set ( Calendar . MILLI SECOND , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġit . time ĊĠĠĠ Ġ} Ċ Ċ fun ĠDate . toString ( format : ĠString ): ĠString Ġ= ĠSimpleDateFormat ( format ). format ( this ) Ċ Ċ fun Ġdate Of ( year : ĠInt , Ġmonth : ĠInt , Ġdate : ĠInt ): ĠDate Ġ{ ĊĠĠĠ Ġreturn ĠCalendar . getInstance (). let Ġ{ ĊĠĠĠĠĠĠĠ Ġit . time Ġ= ĠDate () ĊĠĠĠĠĠĠĠ Ġit . set ( year , Ġmonth , Ġdate ) ĊĠĠĠĠĠĠĠ Ġit . time ĊĠĠĠ Ġ}. mid night Ċ } Ċ Ċ val ĠDate . previous Month : ĠDate Ġget () Ġ= Ġadd ( Calendar . MONTH , Ġ- 1 ) Ċ val ĠDate . next Month : ĠDate Ġget () Ġ= Ġadd ( Calendar . MONTH , Ġ 1 ) Ċ