package Ġpl . ipe bk . sets olver . remote Ċ Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ import Ġjava . util . regex . Pattern Ċ Ċ /** Ċ Ġ* ĠDesign ed Ġto Ġfind Ġdate Ġin Ġa ĠString Ċ Ġ*/ Ċ internal Ġclass ĠDate Parser Ġ{ ĊĊĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġconst Ġval ĠDAY _ OF _ WEEK Ġ= Ġ" S unday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday " ĊĠĠĠ Ġconst Ġval ĠMON TH Ġ= ĊĠĠĠĠĠ Ġ" De cember | January | Fe bruary |" Ġ+ ĊĠĠĠĠĠĠĠ Ġ" March | April | May |" Ġ+ ĊĠĠĠĠĠĠĠ Ġ" June | July | Aug ust |" Ġ+ ĊĠĠĠĠĠĠĠ Ġ" September | Oct ober | November " ĊĊĠĠĠ Ġconst Ġval ĠDAY _ OF _ MONTH Ġ= Ġ" 0 [ 1 - 9 ] |[ 1 - 9 ]| 1 [ 0 - 9 ]| 2 [ 0 - 9 ]| 3 [ 0 - 1 ]" ĊĠĠĠ Ġconst Ġval ĠDATE _ REGEX Ġ= Ġ" ($ DAY _ OF _ WEEK ), Ġ($ MONTH ) Ġ($ DAY _ OF _ MONTH ), Ġ( \\ d { 4 })" ĊĠĠĠ Ġval ĠF IND _ DATE _ PATTERN : ĠPattern Ġ= ĠPattern . compile ( DATE _ REGEX ) ĊĠĠĠ Ġval ĠdateFormat Ġ= ĠSimpleDateFormat (" MMMM Ġdd , Ġy yyy ", ĠLocale . US ) ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠParses Ġ[ Date ] Ġfrom Ġ[ String ]. ĠThe Ġdate Ġmust Ġbe Ġin Ġformat Ġ' DAY _ OF _ WEEK ĠMON TH ĠDAY _ OF _ MONTH , ĊĠĠ Ġ* ĠYEAR '. ĠA Ġsource Ġstring Ġmust Ġcontain Ġonly Ġone Ġdate Ġof Ġthat Ġformat . ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ throws ĠIllegalArgumentException Ġwhen Ġsource Ġstring Ġcontains Ġno Ġdate Ġof Ġsaid Ġformat Ġor ĊĠĠ Ġ* Ġcontains Ġmore Ġthan Ġone ĊĠĠ Ġ*/ ĊĠ Ġfun Ġparse Date ( source : ĠString ): ĠDate Ġ{ ĊĠĠĠ Ġval Ġdate Representation Ġ= Ġfind Date ( source ) ĊĠĠĠ Ġreturn ĠdateFormat . parse ( date Representation ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġfind Date ( source : ĠString ): ĠString Ġ{ ĊĠĠĠ Ġval Ġdates Ġ= Ġarray ListOf < String >() ĊĠĠĠ Ġval Ġmatcher Ġ= ĠF IND _ DATE _ PATTERN . matcher ( source ) ĊĠĠĠ Ġwhile Ġ( matcher . find ()) Ġ{ ĊĠĠĠĠĠ Ġval Ġformat Date Ġ= Ġ"${ matcher . group ( 2 )} Ġ${ matcher . group ( 3 )}, Ġ${ matcher . group ( 4 )}" ĊĠĠĠĠĠ Ġdates . add ( format Date ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( dates . size Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" no Ġdates Ġincluded Ġin Ġthe Ġsource ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( dates . size Ġ> Ġ 1 ) Ġ{ ĊĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" more Ġthan Ġone Ġdate Ġfound Ġin Ġthe Ġsource ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġdates [ 0 ] ĊĠ Ġ} Ċ }