package Ġcom . p wr . s ail app . utils Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . util . Log Ċ import Ġorg . joda . time . DateTime Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ Ċ const Ġval ĠMAX _ FORE CAST _ DAYS Ġ= Ġ 1 0 Ċ /* Ċ Format Ġthe Ġdate Ġaccording Ġto Ġformat Ġused Ġin ĠJSON Ċ Ġ*/ Ċ Ċ const Ġval ĠDATE _ PATTERN _ ISO _ 8 6 0 1 Ġ= Ġ" yyyy - MM - dd ' T ' HH : mm : ss . SS S ' Z '" Ċ const Ġval ĠDATE _ PATTERN _ SIMPLE Ġ= Ġ" EEE , Ġdd ĠM MM Ġy yyy ĠHH : mm : ss Ġz " Ġ// ĠSat , Ġ 0 1 ĠJun Ġ 2 0 1 9 Ġ 1 9 : 3 9 : 4 3 ĠGMT Ċ Ċ object ĠDate Util { ĊĊĠĠĠ Ġ@ Suppress Lint (" SimpleDateFormat ") ĊĠĠĠ Ġfun Ġdate ToString ( date : ĠDate ?, Ġdate Pattern Ġ: ĠString Ġ= ĠDATE _ PATTERN _ ISO _ 8 6 0 1 ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtime Zone Ġ= ĠTime Zone . getTime Zone (" UTC ") ĊĠĠĠĠĠĠĠ Ġval Ġsimple DateFormat Ġ= ĠSimpleDateFormat ( date Pattern , ĠLocale . getDefault ()) ĊĠĠĠĠĠĠĠ Ġsimple DateFormat . time Zone Ġ= Ġtime Zone ĊĠĠĠĠĠĠĠ Ġreturn Ġsimple DateFormat . format ( date ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" SimpleDateFormat ") ĊĠĠĠ Ġfun Ġstring ToDate ( date Str : ĠString ?, Ġdate Pattern Ġ: ĠString Ġ= ĠDATE _ PATTERN _ SIMPLE ): ĠDate ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsimple DateFormat Ġ= ĠSimpleDateFormat ( date Pattern , ĠLocale . EN GL ISH ) ĊĠĠĠĠĠĠĠ Ġreturn Ġsimple DateFormat . parse ( date Str ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Future Date ( date ToCheck : ĠDate ) Ġ: ĠBoolean { ĊĠĠĠĠĠĠĠ Ġval Ġcalendar Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠ Ġval Ġnow Date Ġ= Ġcalendar . time ĊĠĠĠĠĠĠĠ Ġval Ġnow DateTime Ġ= ĠDateTime ( now Date ) ĊĠĠĠĠĠĠĠ Ġval Ġto Check DateTime Ġ= ĠDateTime ( date ToCheck ) ĊĠĠĠĠĠĠĠ Ġreturn Ġto Check DateTime Ġ>= Ġnow DateTime ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġis Forecast Available ( date ToCheck : ĠDate ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( date ToCheck Ġ== Ġnull ){ Log . e (" is Forecast Available ", Ġ" date ToCheck Ġ= Ġnull "); return Ġfalse } ĊĠĠĠĠĠĠĠ Ġval Ġcalendar Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠ Ġval ĠcurrentTime Ġ= Ġcalendar . time ĊĠĠĠĠĠĠĠ Ġval ĠdateTime ToCheck Ġ= ĠDateTime ( date ToCheck ) ĊĠĠĠĠĠĠĠ Ġval Ġcurrent DateTime Ġ= ĠDateTime ( currentTime ) ĊĠĠĠĠĠĠĠ Ġval Ġmax DateTime Ġ= Ġcurrent DateTime . plus Days ( MAX _ FORE CAST _ DAYS ) ĊĠĠĠĠĠĠĠ Ġreturn ĠdateTime ToCheck Ġ< Ġmax DateTime ĊĠĠĠ Ġ} Ċ Ċ } Ċ