package Ġcom . t istory . fre em mer . lib . lib fm . util Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroidx . annotation . Int Def Ċ // import Ġandroid . support . annotation . Int Def Ċ // import Ġandroid . support . annotation . Int Range Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* Ċ Ġ* Ċ Ġ* Ġ@ see Ġli bf m / src / test / java / com / t istory / fre em mer / lib / lib fm / util / FM Date Util Test . kt Ċ Ġ* Ċ Ġ* ĠCreated Ġby Ġfre em mer Ġon Ġ 1 4 / 0 2 / 2 0 1 9 . Ċ Ġ* ĠHistory Ċ Ġ* ĠĠĠ Ġ- Ġ 1 4 / 0 2 / 2 0 1 9 ĠCreate Ġfile Ċ Ġ*/ Ċ class ĠFM Date Util Ġconstructor ( ĊĠĠĠ ĠdateFormat : ĠString , ĊĠĠĠ Ġbase Date : ĠString ? Ġ= Ġnull Ċ ) Ġ{ ĊĠĠĠ Ġ@ Suppress Lint (" SimpleDateFormat ") ĊĠĠĠ Ġprivate Ġval Ġformat Ġ= ĠSimpleDateFormat ( date Format ) ĊĠĠĠ Ġprivate Ġval Ġcalendar Ġ= ĠCalendar . getInstance () !! ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( base Date Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . time Ġ= Ġformat . parse ( base Date ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġformat . format ( Date ( calendar . time In Millis )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" SimpleDateFormat ") ĊĠĠĠ Ġfun ĠtoString ( date Format : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSimpleDateFormat ( date Format ). format ( Date ( calendar . time In Millis )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto TimeIn Millis (): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcalendar . time In Millis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Year ( year : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcalendar . add ( Calendar . YEAR , Ġyear ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Month ( month : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcalendar . add ( Calendar . MONTH , Ġmonth ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Day ( day : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcalendar . add ( Calendar . DATE , Ġday ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Hour ( hour Ġ: ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcalendar . add ( Calendar . HOUR , Ġhour ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Minute ( min Ġ: ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcalendar . add ( Calendar . MINUTE , Ġmin ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Second ( sec : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcalendar . add ( Calendar . SECOND , Ġsec ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetLast Day OfMonth (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcalendar . get Actual Maximum ( Calendar . DAY _ OF _ MONTH ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ//@ Int Range ( from Ġ= Ġ- 1 2 , Ġto Ġ= Ġ 1 2 ) ĊĠĠĠ Ġfun Ġget TimeZone Off Set (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( calendar . get ( Calendar . ZONE _ OFFSET ) Ġ/ Ġ( 6 0 * 6 0 * 1 0 0 0 )) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Retention ( Annotation Retention . SOURCE ) ĊĠĠĠ Ġ@ Int Def ( Calendar . S UND AY , ĠCalendar . MON DAY , ĠCalendar . T UES DAY , ĠCalendar . W ED N ES DAY , ĠCalendar . TH UR SD AY , ĠCalendar . FR ID AY , ĠCalendar . S ATUR DAY ) ĊĠĠĠ Ġannotation Ġclass ĠDay Of The Week ĊĊĠĠĠ Ġ@ Day Of The Week ĊĠĠĠ Ġfun Ġget Day Of The Week (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcalendar . get ( Calendar . DAY _ OF _ WEEK ) ĊĠĠĠ Ġ} Ċ Ċ } ĊĊ