package Ġcom . vs ou h rada . kotlin . k time Ċ Ċ import Ġjava . sql . Date Ċ import Ġjava . time .* Ċ import Ġjava . time . temporal . Ch rono Unit Ċ Ċ /** Ċ Ġ* Ċ Ġ* Ġ@ author Ġvs ou h rada Ċ Ġ* Ġ@ version Ġ 0 . 1 . 0 Ċ Ġ* Ġ@ since Ġ 0 . 1 . 0 Ċ Ġ*/ Ċ Ċ object Ġtoday Ċ Ċ object Ġfirst Second Ċ object Ġlast Second Ċ object Ġmonths Ċ Ċ /** Ċ Ġ* ĠConvert Ġ[ Date ] Ġto Ġ[ LocalDateTime ] Ċ Ġ* Ġ@ return Ġthe Ġnew Ġ[ LocalDateTime ] Ġobject Ġcreated Ġfrom Ġ[ Date ] Ċ Ġ* Ġ@ since Ġ 0 . 1 . 0 Ċ Ġ*/ Ċ fun ĠDate . to LocalDateTime () Ġ= ĠInstant . of Epoch Milli ( this . time ). at Zone ( Zone Id . system Default ()). to LocalDateTime () Ċ Ċ /** Ċ Ġ* ĠConvert Ġ[ Date ] Ġto Ġ[ LocalDate ] Ċ Ġ* Ġ@ return Ġthe Ġnew Ġ[ LocalDate ] Ġobject Ġcreated Ġfrom Ġ[ Date ] Ċ Ġ* Ġ@ since Ġ 0 . 1 . 0 Ċ Ġ*/ Ċ fun ĠDate . to LocalDate () Ġ= ĠInstant . of Epoch Milli ( this . time ). at Zone ( Zone Id . system Default ()). to LocalDate () Ċ Ċ /** Ċ Ġ* ĠConvert Ġ[ LocalDateTime ] Ġto Ġ[ Date ] Ċ Ġ* Ġ@ return Ġthe Ġnew Ġ[ Date ] Ġobject Ġcreated Ġfrom Ġ[ LocalDateTime ] Ċ Ġ* Ġ@ since Ġ 0 . 1 . 0 Ċ Ġ*/ Ċ fun ĠLocalDateTime . to Sql Date () Ġ= ĠDate . valueOf ( this . to LocalDate ()) Ċ Ċ /** Ċ Ġ* ĠConvert Ġ[ LocalDate ] Ġto Ġ[ Date ] Ċ Ġ* Ġ@ return Ġthe Ġnew Ġ[ Date ] Ġobject Ġcreated Ġfrom Ġ[ LocalDate ] Ċ Ġ* Ġ@ since Ġ 0 . 1 . 0 Ċ Ġ*/ Ċ fun ĠLocalDate . to Sql Date () Ġ= ĠDate . valueOf ( this ) Ċ Ċ /** Ċ Ġ* ĠReturn Ġthe Ġminimum Ġsupported Ġ{@ code ĠLocal Time }, Ġ' 0 0 : 0 0 '. Ċ Ġ* ĠThis Ġis Ġthe Ġtime Ġof Ġmid night Ġat Ġthe Ġstart Ġof Ġthe Ġday . Ċ Ġ* Ġ@ return Ġ ĠThe Ġminimum Ġsupported Ġ{@ code ĠLocal Time }, Ġ' 0 0 : 0 0 '. Ċ Ġ* Ġ@ since Ġ 0 . 1 . 0 Ċ Ġ*/ Ċ infix Ġfun ĠLocalDateTime . at ( first Second : Ġfirst Second ) Ġ= ĠLocalDateTime . of ( this . to LocalDate (), ĠLocal Time . MIN ) Ċ Ċ /** Ċ Ġ* ĠThe Ġmaximum Ġsupported Ġ{@ code ĠLocal Time }, Ġ' 2 3 : 5 9 : 5 9 . 9 9 9 9 9 9 9 9 9 '. Ċ Ġ* ĠThis Ġis Ġthe Ġtime Ġjust Ġbefore Ġmid night Ġat Ġthe Ġend Ġof Ġthe Ġday . Ċ Ġ* Ġ@ return Ġ ĠThe Ġmaximum Ġsupported Ġ{@ code ĠLocal Time }, Ġ' 2 3 : 5 9 : 5 9 . 9 9 9 9 9 9 9 9 9 '. Ċ Ġ* Ġ@ since Ġ 0 . 1 . 0 Ċ Ġ*/ Ċ infix Ġfun ĠLocalDateTime . at ( last Second : Ġlast Second ) Ġ= ĠLocalDateTime . of ( this . to LocalDate (), ĠLocal Time . MAX ) Ċ Ċ /** Ċ Ġ* ĠReturn Ġthe Ġminimum Ġsupported Ġ{@ code ĠLocal Time }, Ġ' 0 0 : 0 0 '. Ċ Ġ* ĠThis Ġis Ġthe Ġtime Ġof Ġmid night Ġat Ġthe Ġstart Ġof Ġthe Ġday . Ċ Ġ* Ġ@ return Ġ ĠThe Ġminimum Ġsupported Ġ{@ code ĠLocal Time }, Ġ' 0 0 : 0 0 '. Ċ Ġ* Ġ@ since Ġ 0 . 1 . 0 Ċ Ġ*/ Ċ infix Ġfun ĠLocalDate . at ( first Second : Ġfirst Second ) Ġ= ĠLocalDateTime . of ( this , ĠLocal Time . MIN ) Ċ Ċ /** Ċ Ġ* ĠThe Ġmaximum Ġsupported Ġ{@ code ĠLocal Time }, Ġ' 2 3 : 5 9 : 5 9 . 9 9 9 9 9 9 9 9 9 '. Ċ Ġ* ĠThis Ġis Ġthe Ġtime Ġjust Ġbefore Ġmid night Ġat Ġthe Ġend Ġof Ġthe Ġday . Ċ Ġ* Ġ@ return Ġ ĠThe Ġmaximum Ġsupported Ġ{@ code ĠLocal Time }, Ġ' 2 3 : 5 9 : 5 9 . 9 9 9 9 9 9 9 9 9 '. Ċ Ġ* Ġ@ since Ġ 0 . 1 . 0 Ċ Ġ*/ Ċ infix Ġfun ĠLocalDate . at ( last Second : Ġlast Second ) Ġ= ĠLocalDateTime . of ( this , ĠLocal Time . MAX ) Ċ Ċ /** Ċ Ġ* ĠThis Ġextension Ġfunction Ġof Ġthe Ġ[ LocalDate ] Ġreturn Ġcount Ġof Ġmonths Ġbetween Ġstart Ġdate Ġ([ LocalDate ] Ġon Ġwhich Ġis Ġcall Ġthis Ġextension Ġmethod ) Ġand Ġ[ endDate ] Ċ Ġ* Ġ@ return Ġcount Ġof Ġmonths Ġbetween Ġstart Ġdate Ġ([ LocalDate ] Ġon Ġwhich Ġis Ġcall Ġthis Ġextension Ġmethod ) Ġand Ġ[ endDate ] Ċ Ġ* Ġ@ since Ġ 0 . 1 . 0 Ċ Ġ*/ Ċ infix Ġfun ĠLocalDate . months ( endDate : ĠLocalDate ) Ġ= ĠCh rono Unit . MONTH S . between ( this , ĠendDate ) Ċ Ċ /** Ċ Ġ* ĠThis Ġextension Ġfunction Ġof Ġthe Ġ[ LocalDateTime ] Ġreturn Ġcount Ġof Ġmonths Ġbetween Ġstart Ġdate Ġ([ LocalDateTime ] Ġon Ġwhich Ġis Ġcall Ġthis Ġextension Ġmethod ) Ġand Ġ[ endDate ] Ċ Ġ* Ġ@ return Ġcount Ġof Ġmonths Ġbetween Ġstart Ġdate Ġ([ LocalDateTime ] Ġon Ġwhich Ġis Ġcall Ġthis Ġextension Ġmethod ) Ġand Ġ[ endDate ] Ċ Ġ* Ġ@ since Ġ 0 . 1 . 0 Ċ Ġ*/ Ċ infix Ġfun ĠLocalDateTime . months ( endDate : ĠLocalDateTime ) Ġ= ĠCh rono Unit . MONTH S . between ( this , ĠendDate ) Ċ Ċ infix Ġfun Ġtoday . at ( start : Ġlast Second ) Ġ= ĠcurrentTime () Ċ Ċ private Ġfun Ġcurrent Date () Ġ= ĠLocalDate . now () Ċ Ċ private Ġfun ĠcurrentTime () Ġ= ĠLocalDateTime . now () Ċ Ċ // infix Ġfun Ġmonths . between ( startDate : ĠLocalDate , ĠendDate : ĠLocalDate ) Ġ= ĠCh rono Unit . MONTH S . between ( startDate , ĠendDate ) Ċ Ċ // fun ĠDate . to LocalDateTime () Ġ= ĠLocalDateTime . from ( this . to LocalDate ())