package Ġcom . am ino graphy . prime datepicker . utils Ċ Ċ import Ġcom . am ino graphy . prime calendar . Prime Calendar Ċ import Ġcom . am ino graphy . prime calendar . c ivil . C ivil Calendar Ċ import Ġcom . am ino graphy . prime calendar . c ivil . C ivil Calendar Utils Ċ import Ġcom . am ino graphy . prime calendar . common . Calendar Factory Ċ import Ġcom . am ino graphy . prime calendar . common . Calendar Type Ċ import Ġcom . am ino graphy . prime calendar . hi j ri . H ij ri Calendar Ċ import Ġcom . am ino graphy . prime calendar . hi j ri . H ij ri Calendar Utils Ċ import Ġcom . am ino graphy . prime calendar . j apanese . J apanese Calendar Ċ import Ġcom . am ino graphy . prime calendar . j apanese . J apanese Calendar Utils Ċ import Ġcom . am ino graphy . prime calendar . pers ian . Pers ian Calendar Ċ import Ġcom . am ino graphy . prime calendar . pers ian . Pers ian Calendar Utils Ċ import Ġjava . util .* ĊĊ Ċ /** Ċ Ġ* Ġ@ author Ġa mino graphy Ċ Ġ*/ Ċ @ Suppress (" Member Visibility Can Be Private ") Ċ object ĠDate Utils Ġ{ ĊĊĠĠĠ Ġfun Ġis Same ( year : ĠInt , Ġmonth : ĠInt , Ġday OfMonth : ĠInt , Ġcalendar : ĠPrime Calendar ) Ġ= ĊĠĠĠĠĠĠĠ Ġyear Ġ== Ġcalendar . year Ġ&& Ġmonth Ġ== Ġcalendar . month Ġ&& Ġday OfMonth Ġ== Ġcalendar . day OfMonth ĊĊĠĠĠ Ġfun Ġis Same ( first : ĠPrime Calendar , Ġsecond : ĠPrime Calendar ) Ġ= ĊĠĠĠĠĠĠĠ Ġfirst . year Ġ== Ġsecond . year Ġ&& Ġfirst . month Ġ== Ġsecond . month Ġ&& Ġfirst . day OfMonth Ġ== Ġsecond . day OfMonth ĊĊĠĠĠ Ġfun Ġis Between Exclusive ( year : ĠInt , Ġmonth : ĠInt , Ġday OfMonth : ĠInt , Ġstart : ĠPrime Calendar , Ġend : ĠPrime Calendar ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoffset Ġ= Ġyear Ġ* Ġ 1 2 Ġ+ Ġmonth ĊĠĠĠĠĠĠĠ Ġval Ġstart Offset Ġ= Ġstart . month Offset ĊĠĠĠĠĠĠĠ Ġval Ġend Offset Ġ= Ġend . month Offset ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( offset Ġ== Ġstart Offset Ġ&& Ġ( start Offset Ġ== Ġend Offset )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġday OfMonth Ġ> Ġstart . day OfMonth Ġ&& Ġday OfMonth Ġ< Ġend . day OfMonth ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġwhen Ġ( offset ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Offset Ġ-> Ġday OfMonth Ġ> Ġstart . day OfMonth ĊĠĠĠĠĠĠĠĠĠĠĠ Ġend Offset Ġ-> Ġday OfMonth Ġ< Ġend . day OfMonth ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġoffset Ġin Ġ( start Offset Ġ+ Ġ 1 ) Ġuntil Ġend Offset ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Before ( year : ĠInt , Ġmonth : ĠInt , Ġday OfMonth : ĠInt , Ġtarget : ĠPrime Calendar ?): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġtarget ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġyear Ġ< Ġit . year Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( year Ġ== Ġit . year Ġ&& Ġmonth Ġ< Ġit . month ) Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( year Ġ== Ġit . year Ġ&& Ġmonth Ġ== Ġit . month Ġ&& Ġday OfMonth Ġ< Ġit . day OfMonth ) ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġfalse ĊĊĠĠĠ Ġfun Ġis Before ( calendar : ĠPrime Calendar , Ġtarget : ĠPrime Calendar ?): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġtarget ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . year Ġ< Ġit . year Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( calendar . year Ġ== Ġit . year Ġ&& Ġcalendar . month Ġ< Ġit . month ) Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( calendar . year Ġ== Ġit . year Ġ&& Ġcalendar . month Ġ== Ġit . month Ġ&& Ġcalendar . day OfMonth Ġ< Ġit . day OfMonth ) ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġfalse ĊĊĠĠĠ Ġfun Ġis After ( year : ĠInt , Ġmonth : ĠInt , Ġday OfMonth : ĠInt , Ġtarget : ĠPrime Calendar ?): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġtarget ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġyear Ġ> Ġit . year Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( year Ġ== Ġit . year Ġ&& Ġmonth Ġ> Ġit . month ) Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( year Ġ== Ġit . year Ġ&& Ġmonth Ġ== Ġit . month Ġ&& Ġday OfMonth Ġ> Ġit . day OfMonth ) ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġfalse ĊĊĠĠĠ Ġfun Ġis After ( calendar : ĠPrime Calendar , Ġtarget : ĠPrime Calendar ?): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġtarget ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . year Ġ> Ġit . year Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( calendar . year Ġ== Ġit . year Ġ&& Ġcalendar . month Ġ> Ġit . month ) Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( calendar . year Ġ== Ġit . year Ġ&& Ġcalendar . month Ġ== Ġit . month Ġ&& Ġcalendar . day OfMonth Ġ> Ġit . day OfMonth ) ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġfalse ĊĊĠĠĠ Ġfun Ġis OutOfRange ( year : ĠInt , Ġmonth : ĠInt , Ġday OfMonth : ĠInt , Ġmin Date Calendar : ĠPrime Calendar ?, Ġmax Date Calendar : ĠPrime Calendar ?): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġis Before ( year , Ġmonth , Ġday OfMonth , Ġmin Date Calendar ) Ġ|| Ġis After ( year , Ġmonth , Ġday OfMonth , Ġmax Date Calendar ) ĊĊĠĠĠ Ġ// -------------------------------------------------------------------------------- -------------- ĊĊĠĠĠ Ġfun Ġis Before ( year : ĠInt , Ġmonth : ĠInt , Ġtarget : ĠPrime Calendar ?): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġtarget ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġyear Ġ< Ġit . year Ġ|| Ġ( year Ġ== Ġit . year Ġ&& Ġmonth Ġ< Ġit . month ) ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġfalse ĊĊĠĠĠ Ġfun Ġis Before ( year : ĠInt , Ġmonth : ĠInt , Ġtarget Year : ĠInt , Ġtarget Month : ĠInt ) Ġ= ĊĠĠĠĠĠĠĠ Ġ( year Ġ* Ġ 1 2 Ġ+ Ġmonth ) Ġ< Ġ( target Year Ġ* Ġ 1 2 Ġ+ Ġtarget Month ) ĊĊĠĠĠ Ġfun Ġis After ( year : ĠInt , Ġmonth : ĠInt , Ġtarget : ĠPrime Calendar ?): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġtarget ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġyear Ġ> Ġit . year Ġ|| Ġ( year Ġ== Ġit . year Ġ&& Ġmonth Ġ> Ġit . month ) ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġfalse ĊĊĠĠĠ Ġfun Ġis After ( year : ĠInt , Ġmonth : ĠInt , Ġtarget Year : ĠInt , Ġtarget Month : ĠInt ) Ġ= ĊĠĠĠĠĠĠĠ Ġ( year Ġ* Ġ 1 2 Ġ+ Ġmonth ) Ġ> Ġ( target Year Ġ* Ġ 1 2 Ġ+ Ġtarget Month ) ĊĊĠĠĠ Ġfun Ġis OutOfRange ( year : ĠInt , Ġmonth : ĠInt , Ġmin Date Calendar : ĠPrime Calendar ?, Ġmax Date Calendar : ĠPrime Calendar ?) Ġ= ĊĠĠĠĠĠĠĠ Ġis Before ( year , Ġmonth , Ġmin Date Calendar ) Ġ|| Ġis After ( year , Ġmonth , Ġmax Date Calendar ) ĊĊĠĠĠ Ġ// -------------------------------------------------------------------------------- -------------- ĊĊĠĠĠ Ġfun Ġget Days In Month ( calendar Type : ĠCalendar Type , Ġyear : ĠInt , Ġmonth : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( calendar Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCalendar Type . CI V IL Ġ-> ĠC ivil Calendar Utils . month Length ( year , Ġmonth ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCalendar Type . PER SI AN Ġ-> ĠPers ian Calendar Utils . month Length ( year , Ġmonth ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCalendar Type . HI J RI Ġ-> ĠH ij ri Calendar Utils . month Length ( year , Ġmonth ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCalendar Type . J AP ANE SE Ġ-> ĠJapanese Calendar Utils . month Length ( year , Ġmonth ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstore Calendar ( calendar : ĠPrime Calendar ?): ĠString ? Ġ= ĊĠĠĠĠĠĠĠ Ġcalendar ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ calendar Type . name }-${ locale . language }- $ first DayOfWeek -${ year }-${ month }-${ day OfMonth }" ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrestore Calendar ( input : ĠString ?): ĠPrime Calendar ? Ġ= ĊĠĠĠĠĠĠĠ Ġinput ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsplit ("- "). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCalendar Factory . newInstance ( Calendar Type . valueOf ( it [ 0 ]), ĠLocale ( it [ 1 ])). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfirst DayOfWeek Ġ= Ġit [ 2 ]. toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset ( it [ 3 ]. toInt (), Ġit [ 4 ]. toInt (), Ġit [ 5 ]. toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdate String ( calendar : ĠPrime Calendar ?): ĠString ? Ġ= ĊĠĠĠĠĠĠĠ Ġcalendar ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ year }-${ month }-${ day OfMonth }" ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdate String ( year : ĠInt , Ġmonth : ĠInt , Ġday OfMonth : ĠInt ) Ġ= Ġ"${ year }-${ month }-${ day OfMonth }" ĊĊĠĠĠ Ġfun Ġdefault Week Start Day ( calendar Type : ĠCalendar Type ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( calendar Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCalendar Type . CI V IL Ġ-> ĠC ivil Calendar . DEFAULT _ FIRST _ DAY _ OF _ WEEK ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCalendar Type . PER SI AN Ġ-> ĠPers ian Calendar . DEFAULT _ FIRST _ DAY _ OF _ WEEK ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCalendar Type . HI J RI Ġ-> ĠH ij ri Calendar . DEFAULT _ FIRST _ DAY _ OF _ WEEK ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCalendar Type . J AP ANE SE Ġ-> ĠJapanese Calendar . DEFAULT _ FIRST _ DAY _ OF _ WEEK ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }