package Ġxyz . mir age . app . presentation . core . util Ċ Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ import Ġjava . util . concurrent . TimeUnit Ċ import Ġkotlin . math . abs Ċ Ċ object ĠDate Utils Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġsdf Ġ= ĠSimpleDateFormat (" yyyy - MM - dd ' T ' HH : mm : ss ") ĊĊĠĠĠ Ġprivate Ġval Ġdate Formatter Ġ= ĠSimpleDateFormat (" dd ĠM MM Ġyy ", ĠLocale . EN GL ISH ) ĊĠĠĠ Ġprivate Ġval Ġcurrent Year Formatter Ġ= ĠSimpleDateFormat (" dd ĠM MM ", ĠLocale . EN GL ISH ) ĊĠĠĠ Ġprivate Ġval Ġtime Formatter Ġ= ĠSimpleDateFormat (" HH : mm ", ĠLocale . EN GL ISH ) ĊĠĠĠ Ġprivate Ġval Ġjoined Formatter Ġ= ĠSimpleDateFormat (" MMMM Ġy yyy ", ĠLocale . EN GL ISH ) ĊĊĠĠĠ Ġfun Ġrelative Time ( string : ĠString ): ĠString Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġcurrent Ġ= ĠDate () ĊĠĠĠĠĠĠĠ Ġval Ġdate Ġ= Ġstring ToDate ( string ) ĊĊĠĠĠĠĠĠĠ Ġval Ġdiff In Milli es : ĠLong Ġ= Ġabs ( current . time Ġ- Ġdate . time ) ĊĠĠĠĠĠĠĠ Ġval Ġdiff Minutes Ġ= ĠTimeUnit . MIN UTES . convert ( diff In Milli es , ĠTimeUnit . MILLISECONDS ) ĊĊĠĠĠĠĠĠĠ Ġval Ġcal 1 Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠ Ġcal 1 . time Ġ= Ġcurrent ĊĠĠĠĠĠĠĠ Ġval Ġcal 2 Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠ Ġcal 2 . time Ġ= Ġdate ĊĊĠĠĠĠĠĠĠ Ġval Ġsame Year Ġ= Ġcal 1 . get ( Calendar . YEAR ) Ġ== Ġcal 2 . get ( Calendar . YEAR ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdiff Minutes Ġ< Ġ 6 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ diff Minutes } m " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdiff Minutes Ġ< Ġ 1 4 4 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ diff Minutes Ġ/ Ġ 6 0 } h " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsame Year Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Year Formatter . format ( date ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Formatter . format ( date ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġformat Date ( string : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdate Ġ= Ġstring ToDate ( string ) ĊĠĠĠĠĠĠĠ Ġreturn Ġ"${ time Formatter . format ( date )} ĠÂ· Ġ${ date Formatter . format ( date )}" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstring ToDate ( string : ĠString ): ĠDate Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsdf . parse ( string ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠNullPointerException (" Could Ġnot Ġconvert Ġdate Ġstring Ġto ĠDate Ġobject .") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcreate Timestamp (): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠDate (). time Ġ/ Ġ 1 0 0 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Join Time ( time : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdate Ġ= Ġstring ToDate ( time ) ĊĠĠĠĠĠĠĠ Ġreturn Ġjoined Formatter . format ( date ) ĊĠĠĠ Ġ} Ċ }