/* Ċ Ġ* Ċ Ġ* Ġ Ġ* ĠCopyright Ġ 2 0 2 1 ĠHyper De vs Ċ Ġ* Ġ Ġ* Ċ Ġ* Ġ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* Ġ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ġ Ġ* Ċ Ġ* Ġ Ġ* ĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ġ Ġ* Ċ Ġ* Ġ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* Ġ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* Ġ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ* Ċ Ġ*/ Ċ Ċ @ file : Suppress (" StringLiteral Dup lication ") Ċ package Ġcom . hyper devs . arch _ example . utils . extensions Ċ Ċ import Ġjava . time . DayOfWeek Ċ import Ġjava . time . Duration Ċ import Ġjava . time . LocalDate Ċ import Ġjava . time . format . DateTime Formatter Ċ import Ġjava . time . temporal . Ch rono Unit Ċ import Ġjava . time . temporal . Temporal Adjust ers Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠFormat Ġ[ LocalDate ] Ġshowing Ġthe Ġday Ġof Ġthe Ġweek Ġand Ġthe Ġday Ġof Ġthe Ġmonth . Ċ Ġ* ĠEx : ĠMonday Ġ 2 8 Ċ Ġ*/ Ċ fun ĠLocalDate . to Day Of The Week And Day ( locale : ĠLocale Ġ= ĠLocale . getDefault ()): ĠString Ġ{ ĊĠĠĠ Ġval Ġformatter Ġ= ĠDateTime Formatter . of Pattern (" EEEE Ġdd ", Ġlocale ) ĊĠĠĠ Ġreturn Ġformatter . format ( this ) Ċ } Ċ Ċ /** Ċ Ġ* ĠFormat Ġ[ LocalDate ] Ġshowing Ġthe Ġday Ġof Ġthe Ġmonth Ġand Ġthe Ġmonth . Ċ Ġ* ĠEx : Ġ 2 6 ĠA GO STO Ċ Ġ*/ Ċ fun ĠLocalDate . to Day And Month ( locale : ĠLocale Ġ= ĠLocale . getDefault ()): ĠString Ġ{ ĊĠĠĠ Ġval Ġformatter Ġ= ĠDateTime Formatter . of Pattern (" dd ĠM MMM ", Ġlocale ) ĊĠĠĠ Ġreturn Ġformatter . format ( this ) Ċ } Ċ Ċ /** Ċ Ġ* ĠFormat Ġ[ LocalDate ] Ġshowing Ġthe Ġmonth Ġand Ġthe Ġyear . Ċ Ġ* ĠEx : ĠJuly Ġ 2 0 2 1 Ċ Ġ*/ Ċ fun ĠLocalDate . to Month And Year String ( locale : ĠLocale Ġ= ĠLocale . getDefault ()): ĠString Ġ{ ĊĠĠĠ Ġval Ġformatter Ġ= ĠDateTime Formatter . of Pattern (" MMMM Ġy yyy "). with Locale ( locale ) ĊĠĠĠ Ġreturn Ġformatter . format ( this ) Ċ } Ċ Ċ /** Ċ Ġ* ĠFormat Ġ[ LocalDate ] Ġshowing Ġthe Ġday , Ġmonth Ġand Ġthe Ġyear . Ċ Ġ* ĠEx : Ġ 3 ĠJuly Ġ 2 0 2 1 Ċ Ġ*/ Ċ fun ĠLocalDate . to Day Month And Year String ( locale : ĠLocale Ġ= ĠLocale . getDefault ()): ĠString Ġ{ ĊĠĠĠ Ġval Ġformatter Ġ= ĠDateTime Formatter . of Pattern (" d ĠM MMM Ġy yyy "). with Locale ( locale ) ĊĠĠĠ Ġreturn Ġformatter . format ( this ) Ċ } Ċ Ċ /** Ċ Ġ* ĠFormat Ġ[ LocalDate ] Ġshowing Ġthe Ġday Ġof Ġthe Ġweek Ġand Ġthe Ġmonth . Ċ Ġ* ĠEx : Ġ 0 2 ĠSeptember Ċ Ġ*/ Ċ fun ĠLocalDate . to Day Of The Week Number And Month String ( locale : ĠLocale Ġ= ĠLocale . getDefault ()): ĠString Ġ{ ĊĠĠĠ Ġval Ġpattern Ġ= Ġif Ġ( locale . language Ġ== Ġ" es ") Ġ" EEEE Ġd Ġ' de ' ĠM MMM " Ġelse Ġ" EEEE Ġdd ĠM MMM " ĊĠĠĠ Ġval Ġformatter Ġ= ĠDateTime Formatter . of Pattern ( pattern , Ġlocale ) ĊĠĠĠ Ġreturn Ġformatter . format ( this ) Ċ } Ċ Ċ /** Ċ Ġ* ĠFormat Ġ[ LocalDate ] Ġshowing Ġthe Ġday Ġof Ġthe Ġweek Ġand Ġthe Ġmonth . Ċ Ġ* ĠEx : Ġ 0 2 ĠSeptember Ċ Ġ*/ Ċ fun ĠLocalDate . to Day And Month String ( locale : ĠLocale Ġ= ĠLocale . getDefault ()): ĠString Ġ{ ĊĠĠĠ Ġval Ġpattern Ġ= Ġif Ġ( locale . language Ġ== Ġ" es ") Ġ" d Ġ' de ' ĠM MMM " Ġelse Ġ" dd ĠM MMM " ĊĠĠĠ Ġval Ġformatter Ġ= ĠDateTime Formatter . of Pattern ( pattern , Ġlocale ) ĊĠĠĠ Ġreturn Ġformatter . format ( this ) Ċ } Ċ Ċ /** Ċ Ġ* ĠCalculate Ġthe Ġnumber Ġof Ġdays Ġfrom Ġnow Ġto Ġthe Ġnext Ġs unday . Ċ Ġ*/ Ċ fun ĠLocalDate . days To Next S unday (): ĠLong Ġ{ ĊĠĠĠ Ġval Ġnext S unday Ġ= Ġthis . with ( Temporal Adjust ers . next Or Same ( DayOfWeek . S UND AY )) ĊĠĠĠ Ġ// ĠAdd Ġone Ġday Ġbecause Ġthe Ġsecond Ġparam Ġis Ġexclusive ĊĠĠĠ Ġreturn ĠCh rono Unit . DAYS . between ( this , Ġnext S unday ) Ġ+ Ġ 1 Ċ } Ċ Ċ /** Ċ Ġ* ĠReturn Ġthe Ġnumber Ġof Ġdays Ġfrom Ġnow Ġuntil Ġthis Ġ[ LocalDate ]. Ċ Ġ*/ Ċ fun ĠLocalDate . days From Today () Ġ= ĠDuration . between ( LocalDate . now (), Ġthis ). to Days () Ġ+ Ġ 1 Ċ Ċ /** Ċ Ġ* ĠCheck Ġif Ġa Ġdate Ġis Ġbetween Ġtwo Ġdates . Ċ Ġ*/ Ċ fun ĠLocalDate . is Between ( startDate : ĠLocalDate , ĠendDate : ĠLocalDate ) Ġ= ĊĠĠĠ Ġthis . is After ( startDate ) Ġ&& Ġthis . is Before ( endDate ) Ġ|| Ġthis . isEqual ( startDate ) Ġ|| Ġthis . isEqual ( endDate ) Ċ Ċ /** Ċ Ġ* ĠCheck Ġif Ġtwo Ġdates Ġare Ġin Ġthe Ġsame Ġmonth . Ċ Ġ*/ Ċ fun ĠLocalDate . isIn Same Month ( date : ĠLocalDate ) Ġ= Ġthis . month Ġ== Ġdate . month