package Ġtop . fel ix u . uit l Ċ Ċ import Ġjava . time .* Ċ import Ġjava . time . format . DateTime Formatter Ċ import Ġjava . time . temporal . Temporal Accessor Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* Ġ æĹ¶éĹ´ çĽ¸åħ³ å¤ĦçĲĨ Ċ Ġ* Ġ< p > Ċ Ġ* ĠæıĲ ä¾Ľ ä»¥ä¸ĭ åĬŁèĥ½ Ċ Ġ* Ġ< ul > Ċ Ġ* Ġ< li > æıĲä¾Ľ åĮħæĭ¬ ĠJava 8 Ġ æĹ¶éĹ´ ä¸İ ĠDate ĠåĴĮ ĠLong Ġ ç±»åŀĭ ä¹ĭéĹ´çļĦ çĽ¸ äºĴ è½¬æį¢ </ li > Ċ Ġ* Ġ< li > æıĲä¾Ľ æł¼å¼ı åĮĸ æĸ¹æ³ķ </ li > Ċ Ġ* Ġ< li > æıĲä¾Ľ åĪ¤æĸŃ æĺ¯åĲ¦ ä¸º åĳ¨ æľ« </ li > Ċ Ġ* Ġ< li > æıĲä¾Ľ æŁ¥è¯¢ ç»Ļ å®ļ æĹ¶éĹ´ æ®µ ä¸ŃçļĦ æ¯ı ä¸Ģ å¤© çļĦ åĪĹè¡¨ </ li > Ċ Ġ* Ġ</ ul > Ċ Ġ* Ġ</ p > Ċ Ġ* Ċ Ġ* Ġ@ author Ġfel ix u Ċ Ġ* Ġ@ since Ġ 2 0 2 1 . 0 4 . 1 5 Ċ Ġ*/ Ċ object ĠTime Utils Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġå°Ĩ ĠDate Ġ ç±»åŀĭ è½¬ ä¸º ĠLocalDateTime Ġ ç±»åŀĭ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdate To LocalDateTime ( date : ĠDate ): ĠLocalDateTime Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠLocalDateTime . of Instant ( date . to Instant (), ĠZone Id . system Default ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġå°Ĩ ĠDate Ġ ç±»åŀĭ è½¬ ä¸º ĠLocalDate Ġ ç±»åŀĭ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdate To LocalDate ( date : ĠDate ): ĠLocalDate Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdate To LocalDateTime ( date ). to LocalDate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġå°Ĩ ĠDate Ġ ç±»åŀĭ è½¬ ä¸º ĠLocal Time Ġ ç±»åŀĭ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdate ToLocal Time ( date : ĠDate ): ĠLocal Time Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdate To LocalDateTime ( date ). to Local Time () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġå°Ĩ ĠLocalDateTime Ġ ç±»åŀĭ è½¬ ä¸º ĠDate Ġ ç±»åŀĭ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġlocal DateTime ToDate ( date : ĠLocalDateTime ): ĠDate Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠDate . from ( date . at Zone ( Zone Id . system Default ()). to Instant ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġå°Ĩ ĠLocalDate Ġ ç±»åŀĭ è½¬ ä¸º ĠDate Ġ ç±»åŀĭ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġlocal Date ToDate ( date : ĠLocalDate ): ĠDate Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠDate . from ( date . at Start OfDay (). at Zone ( Zone Id . system Default ()). to Instant ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġå°Ĩ ĠLocal Time Ġ ç±»åŀĭ è½¬ ä¸º ĠDate Ġ ç±»åŀĭ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġlocal Time ToDate ( date : ĠLocalDate , Ġtime : ĠLocal Time ): ĠDate Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠDate . from ( LocalDateTime . of ( date , Ġtime ). at Zone ( Zone Id . system Default ()). to Instant ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġå°Ĩ æĹ¶éĹ´ æĪ ³ è½¬ æĪĲ ĠLocalDateTime ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġlong To LocalDateTime ( time : ĠLong ): ĠLocalDateTime Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠLocalDateTime . of Instant ( Instant . of Epoch Milli ( time ), ĠZone Id . system Default ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġå°Ĩ æĹ¶éĹ´ æĪ ³ è½¬ æĪĲ ĠLocalDate ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġlong To LocalDate ( time : ĠLong ): ĠLocalDate Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠLocalDateTime . of Instant ( Instant . of Epoch Milli ( time ), ĠZone Id . system Default ()). to LocalDate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æĮī æĮĩå®ļ æł¼å¼ı å°Ĩ æĹ¶éĹ´ æł¼å¼ı åĮĸ ä¸º åŃĹç¬¦ä¸² ĊĠĠĠĠ Ġ* Ġ å¸¸ çĶ¨ æł¼å¼ı è¯· ä½¿çĶ¨ [ Date Formatter ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġformat ( source : ĠTemp oral Accessor , Ġpattern : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠDateTime Formatter . of Pattern ( pattern ). format ( source ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æĮī æĮĩå®ļ æł¼å¼ı å°Ĩ æĹ¶éĹ´ æł¼å¼ı åĮĸ ä¸º åŃĹç¬¦ä¸² ĊĠĠĠĠ Ġ* Ġ å¸¸ çĶ¨ æł¼å¼ı è¯· ä½¿çĶ¨ [ Date Formatter ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġformat ( source : ĠDate , Ġpattern : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġformat ( source . to Instant (). at Zone ( Zone Id . system Default ()), Ġpattern ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġå°Ĩ ĠLocalDateTime Ġ è½¬ ä¸º ĠLong Ġ ç±»åŀĭ çļĦæĹ¶éĹ´ æĪ ³ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġto Timestamp ( source : ĠLocalDateTime ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsource . at Zone ( Zone Id . system Default ()). to Instant (). to Epoch Milli () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪ¤æĸŃ å½ĵåīį ç»Ļ å®ļ æĹ¶éĹ´ æĺ¯åĲ¦ ä¸º åĳ¨ æľ« ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġis Week end ( source : ĠLocalDate ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsource . day OfWeek Ġ== ĠDay OfWeek . S ATUR DAY Ġ|| Ġsource . day OfWeek Ġ== ĠDay OfWeek . S UND AY ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ ç»Ļ å®ļ æĹ¶éĹ´ æ®µ ä¸ŃçļĦ æ¯ı ä¸Ģ å¤© ( åĲ« Ġstart ĠåĴĮ Ġend Ġåľ¨ åĨħ ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Every Day Of Specified ( start : ĠString , Ġend : ĠString , Ġpattern : ĠString ): ĠList < LocalDate > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġof Pattern Ġ= ĠDateTime Formatter . of Pattern ( pattern ) ĊĠĠĠĠĠĠĠ Ġreturn Ġget Every Day Of Specified ( LocalDate . parse ( start , Ġof Pattern ), ĠLocalDate . parse ( end , Ġof Pattern )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ ç»Ļ å®ļ æĹ¶éĹ´ æ®µ ä¸ŃçļĦ æ¯ı ä¸Ģ å¤© ( åĲ« Ġstart ĠåĴĮ Ġend Ġåľ¨ åĨħ ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Every Day Of Specified ( start : ĠLocalDate , Ġend : ĠLocalDate ): ĠList < LocalDate > Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġstart Ġ= Ġstart ĊĠĠĠĠĠĠĠ Ġval Ġresult : ĠMutable List < LocalDate > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġwhile Ġ(! start . is After ( end )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . add ( start ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġstart . plus Days ( 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ ç»Ļ å®ļ æĹ¶éĹ´ æ®µ ä¸ŃçļĦ æ¯ı ä¸Ģ å¤© ( åĲ« Ġstart ĠåĴĮ Ġend Ġåľ¨ åĨħ ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Every Day Of Specified ( ĊĠĠĠĠĠĠĠ Ġstart : ĠString , ĊĠĠĠĠĠĠĠ Ġend : ĠString , ĊĠĠĠĠĠĠĠ Ġsource Pattern : ĠString , ĊĠĠĠĠĠĠĠ Ġformatter : ĠDate Formatter ĊĠĠĠ Ġ): ĠList < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġof Pattern Ġ= ĠDateTime Formatter . of Pattern ( source Pattern ) ĊĠĠĠĠĠĠĠ Ġreturn Ġget Every Day Of Specified ( LocalDate . parse ( start , Ġof Pattern ), ĠLocalDate . parse ( end , Ġof Pattern ), Ġformatter ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ ç»Ļ å®ļ æĹ¶éĹ´ æ®µ ä¸ŃçļĦ æ¯ı ä¸Ģ å¤© ( åĲ« Ġstart ĠåĴĮ Ġend Ġåľ¨ åĨħ ) ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġstart Ġ å¼Ģå§ĭ æĹ¶éĹ´ ĊĠĠĠĠ Ġ* Ġ@ param Ġend Ġ ç»ĵæĿŁ æĹ¶éĹ´ ĊĠĠĠĠ Ġ* Ġ@ param Ġformatter Ġè¿ĶåĽŀ åŃĹç¬¦ä¸² æĹ¶éĹ´ çļĦ æł¼å¼ı ĊĠĠĠĠ Ġ* Ġ@ return Ġ ç»Ļ å®ļ æĹ¶éĹ´ æ®µ ä¸ŃçļĦ æĹ¶éĹ´ åĪĹè¡¨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Every Day Of Specified ( start : ĠLocalDate , Ġend : ĠLocalDate , Ġformatter : ĠDate Formatter ): ĠList < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġstart Ġ= Ġstart ĊĠĠĠĠĠĠĠ Ġval Ġresult : ĠMutable List < String > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġwhile Ġ(! start . is After ( end )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . add ( start . format ( formatter . formatter )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġstart . plus Days ( 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ }