package Ġcom . fro go box . sdk . core Ċ Ċ import Ġandroid . os . Build Ċ import Ġandroid . text . format . DateFormat Ċ import Ġjava . text . ParseException Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ /* Ċ Ġ* ĠCreated Ġby Ġfa is alam ir Ġon Ġ 2 6 / 0 7 / 2 1 Ċ Ġ* ĠF ro go SDK Ċ Ġ* Ġ-------------------------------- --------- Ċ Ġ* ĠName ĠĠĠĠ Ġ: ĠMu ham mad ĠF ais al ĠA mir Ċ Ġ* ĠE - mail ĠĠ Ġ: Ġfa is alam ir cs @ gmail . com Ċ Ġ* ĠGithub ĠĠ Ġ: Ġgithub . com / am iris back Ċ Ġ* Ġ-------------------------------- --------- Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 1 ĠF ro go Box ĠInc . ĠĠĠĠĠĠ Ċ Ġ* ĠAll Ġrights Ġreserved Ċ Ġ* Ċ Ġ*/ Ċ object ĠF ro go Date Ġ: ĠIF ro go Date Ġ{ ĊĊĠĠĠ Ġval ĠTAG Ġ= ĠF ro go Date :: class . java . simple Name ĊĊĠĠĠ Ġ// ĠFormat ĠSecond ĊĠĠĠ Ġconst Ġval ĠSE COND _ M ILL IS Ġ= Ġ 1 0 0 0 ĊĠĠĠ Ġconst Ġval ĠMIN UTE _ M ILL IS Ġ= Ġ 6 0 Ġ* ĠSE COND _ M ILL IS ĊĠĠĠ Ġconst Ġval ĠHO UR _ M ILL IS Ġ= Ġ 6 0 Ġ* ĠMIN UTE _ M ILL IS ĊĠĠĠ Ġconst Ġval ĠDAY _ M ILL IS Ġ= Ġ 2 4 Ġ* ĠHO UR _ M ILL IS ĊĊĠĠĠ Ġ// ĠFormat ĠDate ĊĠĠĠ Ġconst Ġval ĠDATE _ TIME _ GLOBAL Ġ= Ġ" yyyy - MM - dd ' T ' HH : mm : ss . SS S ' Z '" Ġ// ĊĠĠĠ Ġconst Ġval ĠDATE _ TIME _ STANDARD Ġ= Ġ" yyyy - MM - dd ĠHH : mm : ss " Ġ// Ġ 2 0 1 8 - 1 0 - 0 2 Ġ 1 2 : 1 2 : 1 2 ĊĠĠĠ Ġconst Ġval ĠDATE _ EN GL ISH _ YYYY _ MM _ DD Ġ= Ġ" yyyy - MM - dd " Ġ// Ġ 2 0 1 8 - 1 0 - 0 2 ĊĠĠĠ Ġconst Ġval ĠDATE _ EN GL ISH _ YYYY _ MM _ DD _ CLEAR Ġ= Ġ" yyyy ĠMM Ġdd " Ġ// Ġ 2 0 1 8 Ġ 1 0 Ġ 0 2 ĊĠĠĠ Ġconst Ġval ĠDATE _ DD _ MM _ YYYY Ġ= Ġ" dd - MM - yyyy " Ġ// Ġ 0 2 - 1 0 - 2 0 1 8 ĊĠĠĠ Ġconst Ġval ĠDATE _ EEEE _ DD _ MM _ YYYY Ġ= Ġ" EEEE , Ġdd ĠM MMM Ġy yyy " Ġ// Ġ 0 2 - 1 0 - 2 0 1 8 ĊĠĠĠ Ġconst Ġval ĠDATE _ DD _ MM _ YYYY _ CLEAR Ġ= Ġ" dd ĠMM Ġy yyy " Ġ// Ġ 0 2 - 1 0 - 2 0 1 8 ĊĊĠĠĠ Ġ// ĠFormat ĠTime ĊĠĠĠ Ġconst Ġval ĠTIME _ GENERAL _ HH _ MM _ SS Ġ= Ġ" HH : mm : ss " Ġ// Ġ 1 2 : 1 2 : 1 2 ĊĠĠĠ Ġconst Ġval ĠTIME _ GENERAL _ HH _ MM Ġ= Ġ" HH : mm " Ġ// Ġ 1 2 : 1 2 ĊĊĠĠĠ Ġ// ĠFormat ĠDay ĊĠĠĠ Ġconst Ġval ĠDAY _ WITH _ DATE _ TIME _ EN GL ISH Ġ= Ġ" EEE , ĠM MM Ġdd Ġy yyy ĠHH : mm " Ġ// ĠMon , ĠAug Ġ 1 2 Ġ 2 0 1 8 Ġ 1 2 : 1 2 ĊĠĠĠ Ġconst Ġval ĠDAY _ WITH _ DATE _ TIME _ LOCAL E Ġ= Ġ" EEE , Ġdd ĠM MM Ġy yyy ĠHH : mm " Ġ// ĠSen , Ġ 1 2 ĠA gt Ġ 2 0 1 9 Ġ 1 2 : 1 2 ĊĠĠĠ Ġconst Ġval ĠDAY _ WITH _ DATE _ TIME _ EN GL ISH _ FULL Ġ= ĊĠĠĠĠĠĠĠ Ġ" EEEE , ĠM MMM Ġdd Ġy yyy ĠHH : mm " Ġ// ĠMonday , ĠAugust Ġ 1 2 Ġ 2 0 1 8 Ġ 1 2 : 1 2 ĊĠĠĠ Ġconst Ġval ĠDAY _ WITH _ DATE _ TIME _ LOCAL E _ FULL Ġ= ĊĠĠĠĠĠĠĠ Ġ" EEEE , Ġdd ĠM MMM Ġy yyy ĠHH : mm " Ġ// ĠSen in , Ġ 1 2 ĠAg ust us Ġ 2 0 1 8 Ġ 1 2 : 1 2 ĊĊĠĠĠ Ġoverride Ġfun Ġget TimeStamp (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsimple DateFormat Ġ= ĠSimpleDateFormat ( DATE _ TIME _ STANDARD , ĠLocale . getDefault ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġsimple DateFormat . format ( Date ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetTime Now (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsimple DateFormat Ġ= ĠSimpleDateFormat ( TIME _ GENERAL _ HH _ MM _ SS , ĠLocale . getDefault ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġsimple DateFormat . format ( Date ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetCurrent Date ( format : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsimple DateFormat Ġ= ĠSimpleDateFormat ( format , ĠLocale . getDefault ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġsimple DateFormat . format ( Date ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠdateTime To TimeStamp ( date : ĠString ?): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġtimestamp : ĠLong Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġtz Ġ= ĠTime Zone . getTime Zone (" UTC ") ĊĠĠĠĠĠĠĠ Ġval Ġdf Ġ= ĠSimpleDateFormat ( DATE _ TIME _ GLOBAL , ĠLocale . getDefault ()) ĊĠĠĠĠĠĠĠ Ġdf . time Zone Ġ= Ġtz ĊĊĠĠĠĠĠĠĠ Ġif Ġ( date Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtimestamp Ġ= Ġdf . parse ( date ). time Ġ/ Ġ 1 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠParseException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtimestamp Ġ= ĠDate (). getTime () Ġ/ Ġ 1 0 0 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtimestamp ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetCurrent UTC (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtime Ġ= ĠCalendar . getInstance (). time ĊĠĠĠĠĠĠĠ Ġval Ġoutput Fmt Ġ= ĠSimpleDateFormat ( TIME _ GENERAL _ HH _ MM _ SS , ĠLocale . getDefault ()) ĊĠĠĠĠĠĠĠ Ġoutput Fmt . time Zone Ġ= ĠTime Zone . getTime Zone (" UTC ") ĊĠĠĠĠĠĠĠ Ġreturn Ġoutput Fmt . format ( time ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtime to Hour ( date : ĠString ?): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtz Ġ= ĠTime Zone . getTime Zone (" UTC ") ĊĠĠĠĠĠĠĠ Ġval Ġdf Ġ= ĠSimpleDateFormat ( TIME _ GENERAL _ HH _ MM _ SS , ĠLocale . getDefault ()) ĊĠĠĠĠĠĠĠ Ġdf . time Zone Ġ= Ġtz ĊĊĠĠĠĠĠĠĠ Ġreturn ĠDate Format . format ( TIME _ GENERAL _ HH _ MM _ SS , Ġdf . parse ( date )). toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠdateTime TZ to Hour ( date : ĠString ?): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtz Ġ= ĠTime Zone . getTime Zone (" UTC ") ĊĠĠĠĠĠĠĠ Ġval Ġdf Ġ= ĠSimpleDateFormat ( DATE _ TIME _ GLOBAL , ĠLocale . getDefault ()) ĊĠĠĠĠĠĠĠ Ġdf . time Zone Ġ= Ġtz ĊĊĠĠĠĠĠĠĠ Ġreturn ĠDate Format . format (" hh : mm Ġaa ", Ġdf . parse ( date )). toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠDateTime Month ( date : ĠString ?): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtz Ġ= ĠTime Zone . getTime Zone (" UTC ") ĊĠĠĠĠĠĠĠ Ġval Ġdf Ġ= ĠSimpleDateFormat ( DATE _ TIME _ STANDARD , ĠLocale . getDefault ()) ĊĠĠĠĠĠĠĠ Ġdf . time Zone Ġ= Ġtz ĊĊĠĠĠĠĠĠĠ Ġreturn ĠDate Format . format (" MMM Ġy yyy ", Ġdf . parse ( date )). toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠdateTime Set ( date : ĠString ?): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( date Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtz Ġ= ĠTime Zone . getTime Zone (" UTC ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdf Ġ= ĠSimpleDateFormat ( DATE _ TIME _ STANDARD , ĠLocale . getDefault ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdf . time Zone Ġ= Ġtz ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDate Format . format (" MM / yyyy ", Ġdf . parse ( date )). toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠParseException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠdateTime Problem ( date : ĠString ?): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( date Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtz Ġ= ĠTime Zone . getTime Zone (" UTC ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdf Ġ= ĠSimpleDateFormat ( DATE _ EN GL ISH _ YYYY _ MM _ DD , ĠLocale . getDefault ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdf . time Zone Ġ= Ġtz ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDate Format . format (" MM / yyyy ", Ġdf . parse ( date )). toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠParseException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetTime Ago ( time : ĠLong ): ĠString ? Ġ{ ĊĊĠĠĠĠĠĠĠ Ġvar Ġtime Ġ= Ġtime ĊĠĠĠĠĠĠĠ Ġif Ġ( time Ġ< Ġ 1 0 0 0 0 0 0 0 0 0 0 0 0 L ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġif Ġtimestamp Ġgiven Ġin Ġseconds , Ġconvert Ġto Ġmillis ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime Ġ*= Ġ 1 0 0 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġnow Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠ Ġif Ġ( time Ġ<= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġdiff Ġ= Ġnow Ġ- Ġtime ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( diff Ġ< ĠMIN UTE _ M ILL IS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Just ĠNow " ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( diff Ġ< Ġ 2 Ġ* ĠMIN UTE _ M ILL IS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" A Ġminute Ġago " ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( diff Ġ< Ġ 5 0 Ġ* ĠMIN UTE _ M ILL IS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( diff Ġ/ ĠMIN UTE _ M ILL IS ). toString () Ġ+ Ġ" Ġminutes Ġago " ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( diff Ġ< Ġ 9 0 Ġ* ĠMIN UTE _ M ILL IS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" An Ġhour Ġago " ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( diff Ġ< Ġ 2 4 Ġ* ĠHO UR _ M ILL IS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(( diff Ġ/ ĠHO UR _ M ILL IS ). toString () Ġ== Ġ" 1 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" An Ġhour Ġago " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( diff Ġ/ ĠHO UR _ M ILL IS ). toString () Ġ+ Ġ" Ġhours Ġago " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ< ĠBuild . VERSION _ CODES . KIT K AT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDate Format . format (" dd ĠM MM Ġyy Ġ- Ġhh : mm ", Ġtime ). toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDate Format . format (" dd ĠM MM Ġyy Ġ- ĠHH : mm ", Ġtime ). toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcompare Date ( new Date : ĠString ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġformat Ġ= ĠSimpleDateFormat ( DATE _ EN GL ISH _ YYYY _ MM _ DD , ĠLocale . getDefault ()) ĊĠĠĠĠĠĠĠ Ġval Ġold Date Ġ= ĠCalendar . getInstance (). time ĊĠĠĠĠĠĠĠ Ġval Ġnow Ġ= Ġformat . format ( old Date ) ĊĠĠĠĠĠĠĠ Ġvar Ġinfo Ġ= Ġ 0 L ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinfo Ġ= ĠTimeUnit . DAYS . convert ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġformat . parse ( now ). getTime () Ġ- Ġformat . parse ( new Date ). getTime (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTimeUnit . MILLISECONDS ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinfo Ġ> Ġ 1 L Ġ-> ĠgetData Chat ( dateTime To TimeStamp ( new Date )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinfo Ġ== Ġ 1 L Ġ-> Ġ" Y esterday " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ" Today " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmessage Date ( new Date : ĠString ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġformat Ġ= ĠSimpleDateFormat ( DATE _ EN GL ISH _ YYYY _ MM _ DD , ĠLocale . getDefault ()) ĊĠĠĠĠĠĠĠ Ġval Ġold Date Ġ= ĠCalendar . getInstance (). time ĊĠĠĠĠĠĠĠ Ġval Ġnow Ġ= Ġformat . format ( old Date ) ĊĠĠĠĠĠĠĠ Ġvar Ġinfo Ġ= Ġ 0 L ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinfo Ġ= ĠTimeUnit . DAYS . convert ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġformat . parse ( now ). getTime () Ġ- Ġformat . parse ( new Date ). getTime (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTimeUnit . MILLISECONDS ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinfo Ġ> Ġ 1 L Ġ-> ĠgetData Chat ( dateTime To TimeStamp ( new Date )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinfo Ġ== Ġ 1 L Ġ-> Ġ" Y esterday " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠdateTime TZ to Hour ( new Date ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetData Chat ( time : ĠLong ): ĠString ? Ġ{ ĊĊĠĠĠĠĠĠĠ Ġvar Ġtime Ġ= Ġtime ĊĠĠĠĠĠĠĠ Ġif Ġ( time Ġ< Ġ 1 0 0 0 0 0 0 0 0 0 0 0 0 L ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġif Ġtimestamp Ġgiven Ġin Ġseconds , Ġconvert Ġto Ġmillis ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime Ġ*= Ġ 1 0 0 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġnow Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠ Ġif Ġ( time Ġ<= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġdiff Ġ= Ġnow Ġ- Ġtime ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( diff Ġ< Ġ 2 4 Ġ* ĠHO UR _ M ILL IS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Today " ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDate Format . format ( DATE _ DD _ MM _ YYYY _ CLEAR , Ġtime ). toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġconvert Classification Date ( string : ĠString ?): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( string Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( string . contains ("/ ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtemp Ġ= Ġstring . split ("/") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemp [ 1 ] Ġ+ Ġ"-" Ġ+ Ġtemp [ 0 ] Ġ+ Ġ"- 0 1 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġconvert Date New Format ( string : ĠString ?): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġformatter Ġ= ĠSimpleDateFormat ( DATE _ EN GL ISH _ YYYY _ MM _ DD , ĠLocale . getDefault ()) ĊĠĠĠĠĠĠĠ Ġval Ġdate Ġ= Ġformatter . parse ( string ) Ġas ĠDate ĊĠĠĠĠĠĠĠ Ġval Ġnew Format Ġ= ĠSimpleDateFormat ( DATE _ DD _ MM _ YYYY , ĠLocale (" EN ")) ĊĠĠĠĠĠĠĠ Ġreturn Ġnew Format . format ( date ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġconvert Long Date New Format ( string : ĠString ?): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġformatter Ġ= ĠSimpleDateFormat ( DATE _ TIME _ STANDARD , ĠLocale . getDefault ()) ĊĠĠĠĠĠĠĠ Ġval Ġdate Ġ= Ġformatter . parse ( string ) Ġas ĠDate ĊĠĠĠĠĠĠĠ Ġval Ġnew Format Ġ= ĠSimpleDateFormat (" dd - MM - yy ĠHH : mm : ss ", ĠLocale (" EN ")) ĊĠĠĠĠĠĠĠ Ġreturn Ġnew Format . format ( date ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrevert From Long Date New Format ( string : ĠString ?): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġformatter Ġ= ĠSimpleDateFormat (" dd - MM - yy ĠHH : mm : ss ", ĠLocale (" EN ")) ĊĠĠĠĠĠĠĠ Ġval Ġdate Ġ= Ġformatter . parse ( string ) Ġas ĠDate ĊĠĠĠĠĠĠĠ Ġval Ġnew Format Ġ= ĠSimpleDateFormat ( DATE _ TIME _ STANDARD , ĠLocale . getDefault ()) ĊĠĠĠĠĠĠĠ Ġval Ġfinal String Ġ= Ġnew Format . format ( date ) ĊĠĠĠĠĠĠĠ Ġreturn Ġfinal String ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġconvert Target Date ( string : ĠString ?): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( string Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( string . contains ("/ ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtemp Ġ= Ġstring . split ("/") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemp [ 1 ] Ġ+ Ġ"-" Ġ+ Ġtemp [ 0 ] Ġ+ Ġ"- 0 1 Ġ 0 0 : 0 0 : 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdiff Time ( time Start : ĠString , Ġtime End : ĠString ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġmin : ĠLong Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġdiff : ĠLong ĊĠĠĠĠĠĠĠ Ġval Ġformat Ġ= ĠSimpleDateFormat ( TIME _ GENERAL _ HH _ MM _ SS , ĠLocale . getDefault ()) ĊĊĠĠĠĠĠĠĠ Ġvar Ġd 1 : ĠDate ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġd 2 : ĠDate ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd 1 Ġ= Ġformat . parse ( time Start ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd 2 Ġ= Ġformat . parse ( time End ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdiff Ġ= Ġd 2 . time Ġ- Ġd 1 . time ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmin Ġ= Ġdiff Ġ/ Ġ( 6 0 Ġ* Ġ 1 0 0 0 ) ĊĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġmin ĊĠĠĠ Ġ} Ċ Ċ }