package Ġio . github . bo gus zp aw low ski . compose calendar . week Ċ Ċ import Ġio . github . bo gus zp aw low ski . compose calendar . day . Week Day Ċ import Ġio . github . bo gus zp aw low ski . compose calendar . util . days Until Ċ import Ġjava . time . DayOfWeek Ċ import Ġjava . time . LocalDate Ċ import Ġjava . time . Year Month Ċ Ċ private Ġconst Ġval ĠDays In AW eek Ġ= Ġ 7 Ċ Ċ internal Ġfun ĠYear Month . get Week s ( ĊĠ Ġinclude Adjacent Months : ĠBoolean , ĊĠ Ġfirst Day Of The Week : ĠDay OfWeek , ĊĠ Ġtoday : ĠLocalDate Ġ= ĠLocalDate . now (), Ċ ): ĠList < Week > Ġ{ ĊĠ Ġval Ġdays Length Ġ= Ġlength OfMonth () ĊĊĠ Ġval Ġstar Offset Ġ= Ġat Day ( 1 ). day OfWeek Ġdays Until Ġfirst Day Of The Week ĊĠ Ġval Ġend Offset Ġ= ĊĠĠĠ ĠDays In AW eek Ġ- Ġ( at Day ( days Length ). day OfWeek Ġdays Until Ġfirst Day Of The Week ) Ġ- Ġ 1 ĊĊĠ Ġreturn Ġ( 1 Ġ- Ġstar Offset .. days Length Ġ+ Ġend Offset ). chunk ed ( Days In AW eek ). map Indexed Ġ{ Ġindex , Ġdays Ġ-> ĊĠĠĠ ĠWeek ( ĊĠĠĠĠĠ Ġis First Week Of The Month Ġ= Ġindex Ġ== Ġ 0 , ĊĠĠĠĠĠ Ġdays Ġ= Ġdays . map NotNull Ġ{ Ġday OfMonth Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġ( date , Ġis From Current Month ) Ġ= Ġwhen Ġ( day OfMonth ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġin ĠInt . MIN _ VALUE .. 0 Ġ-> Ġif Ġ( include Adjacent Months ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprevious Month Ġ= Ġthis . minus Months ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprevious Month . at Day ( previous Month . length OfMonth () Ġ+ Ġday OfMonth ) Ġto Ġfalse ĊĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ map NotNull Ġnull ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġin Ġ 1 .. days Length Ġ-> Ġat Day ( day OfMonth ) Ġto Ġtrue ĊĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġif Ġ( include Adjacent Months ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprevious Month Ġ= Ġthis . plus Months ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprevious Month . at Day ( day OfMonth Ġ- Ġdays Length ) Ġto Ġfalse ĊĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ map NotNull Ġnull ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠWeek Day ( ĊĠĠĠĠĠĠĠĠĠ Ġdate Ġ= Ġdate , ĊĠĠĠĠĠĠĠĠĠ Ġis From Current Month Ġ= Ġis From Current Month , ĊĠĠĠĠĠĠĠĠĠ Ġis Current Day Ġ= Ġdate . equals ( today ), ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) ĊĠ Ġ} Ċ } Ċ