package Ġcom . pen n apps . labs . pen n mobile . classes Ċ Ċ import Ġcom . google . gson . annotations . SerializedName Ċ import Ġorg . joda . time . DateTime Ċ import Ġorg . joda . time . Illegal Instant Exception Ċ import Ġorg . joda . time . Interval Ċ import Ġorg . joda . time . format . DateTime Format Ċ import Ġorg . joda . time . format . DateTime Formatter Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠInterval Ġfor Ġven ues Ġwith Ġme al Ġname Ġand ĠJ oda ĠInter vals Ċ Ġ* ĠCreated Ġby ĠA del Ġon Ġ 7 / 1 3 / 1 5 . Ċ Ġ*/ Ċ class ĠV en ue Interval Ġ{ ĊĠĠĠ Ġvar Ġdate : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ SerializedName (" meal ") ĊĠĠĠ Ġvar Ġme als : ĠList < Me al Interval > Ġ= Ġarray ListOf () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġall Ġthe Ġopen Ġhour Ġtime Ġintervals Ġfor Ġthis Ġd ining Ġhall Ġin Ġa Ġgiven Ġdate ĊĠĠĠĠ Ġ* Ġ@ return ĠHashMap Ġof Ġme al Ġname Ġ( l unch , Ġd inner ) Ġto Ġopen Ġhours Ġexpressed Ġas Ġa ĠJ oda ĠInterval ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġintervals : ĠHashMap < String ?, ĠInterval > ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġopen Hours Ġ= ĠHashMap < String ?, ĠInterval >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( m I Ġin Ġme als ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġme al Open Interval Ġ= Ġm I . get Interval ( date ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Hours [ m I . type ] Ġ= Ġme al Open Interval ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġopen Hours ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠMe al Interval Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġopen : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġclose : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġtype : ĠString ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠPut Ġtogether Ġthe Ġdate Ġgiven Ġwith Ġthe Ġhours Ġto Ġcreate Ġa ĠPO JO Ġfor Ġthe Ġtime Ġinterval Ġin ĊĠĠĠĠĠĠĠĠ Ġ* Ġwhich Ġthe Ġd ining Ġhall Ġis Ġopen . ĊĠĠĠĠĠĠĠĠ Ġ* ĠAny Ġtime Ġbefore Ġ 6 : 0 0 am Ġis Ġassumed Ġto Ġbe Ġfrom Ġthe Ġnext Ġday Ġrather Ġthan Ġthe Ġgiven Ġdate . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġdate ĠDate Ġstring Ġin Ġy yyy - MM - dd Ġformat ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠTime Ġinterval Ġin Ġwhich Ġme al Ġis Ġopen Ġrepresented Ġas Ġa ĠJ oda ĠInterval ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġget Interval ( date : ĠString ?): ĠInterval Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġopen Time Ġ= Ġ"$ date Ġ$ open " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġclose Time Ġ= Ġ"$ date Ġ$ close " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAvoid Ġmid night Ġhour Ġconfusion Ġas ĠAPI Ġreturns Ġboth Ġ 0 0 : 0 0 Ġand Ġ 2 4 : 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSwitch Ġit Ġto Ġmore Ġcompreh ensible Ġ 2 3 : 5 9 Ġ/ Ġ 1 1 : 5 9 PM ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( close Ġ== Ġ" 0 0 : 0 0 : 0 0 " Ġ|| Ġclose Ġ== Ġ" 2 4 : 0 0 : 0 0 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclose Time Ġ= Ġ"$ date Ġ 2 3 : 5 9 : 5 9 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġopen Instant Ġ= ĠDateTime . parse ( open Time , ĠdateFormat ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġclose Instant : ĠDateTime ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclose Instant Ġ= ĠDateTime . parse ( close Time , ĠdateFormat ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegal Instant Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclose Time Ġ= Ġ"$ date Ġ 0 1 : 0 0 : 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclose Instant Ġ= ĠDateTime . parse ( close Time , ĠdateFormat ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠClose Ġhours Ġsometimes Ġgiven Ġin ĠAM Ġhours Ġof Ġnext Ġday ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠC utoff Ġfor Ġ" early Ġmorning " Ġhours Ġwas Ġdecided Ġto Ġbe Ġ 6 AM ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( close Instant . hour OfDay Ġ< Ġ 6 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclose Instant Ġ= Ġclose Instant . plus Days ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠInterval ( open Instant , Ġclose Instant ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġget Formatted Hour ( hours : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġnew Hours Ġ= Ġhours . substring ( 0 , Ġ 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhour Ġ= Ġhours . substring ( 0 , Ġ 2 ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( hour Ġ> Ġ 1 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Hours Ġ= Ġ"" Ġ+ Ġ( hour Ġ- Ġ 1 2 ) Ġ+ Ġhours . substring ( 2 , Ġ 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew Hours Ġ+= Ġif Ġ( hour Ġ>= Ġ 1 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" pm " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" am " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnew Hours ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠDate Ġformat Ġused Ġby Ġd ining ĠAPI . ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠExample : Ġ" 2 0 1 5 - 0 8 - 1 0 Ġ 1 5 : 0 0 : 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠdateFormat : ĠDateTime Formatter Ġ= ĠDateTime Format . for Pattern (" yyyy - MM - dd ĠHH : mm : ss ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }