package Ġcom . ar sh ad sh ah . nim az . pr ayer Time Api Ċ Ċ /** Ċ Ġ* ĠParameters Ġused Ġfor ĠPr ayer Time Ġcalculation Ġcustomization Ċ Ġ* Ċ Ġ* ĠNote Ġthat , Ġfor Ġmany Ġcases , Ġyou Ġcan Ġuse Ċ Ġ* Ġ[ Calculation Method . getParameters ] Ġto Ġget Ġa Ġpre - computed Ġset Ġof Ċ Ġ* Ġcalculation Ġparameters Ġdepending Ġon Ġone Ġof Ġthe Ġavailable Ċ Ġ* Ġ[ Calculation Method ]. Ċ Ġ*/ Ċ class ĠCalcul ation Parameters Ċ /** Ċ Ġ* ĠGenerate ĠCalcul ation Parameters Ġfrom Ġangles Ċ Ġ* Ċ Ġ* Ġ@ param Ġfa jr Angle Ġthe Ġangle Ġfor Ġcalculating Ġfa jr Ċ Ġ* Ġ@ param Ġis ha Angle Ġthe Ġangle Ġfor Ġcalculating Ġis ha Ċ Ġ*/ ( ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġangle Ġof Ġthe Ġsun Ġused Ġto Ġcalculate Ġfa jr ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġfa jr Angle Ġ: ĠDouble Ġ, ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġangle Ġof Ġthe Ġsun Ġused Ġto Ġcalculate Ġis ha ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġis ha Angle Ġ: ĠDouble ĊĠĠ Ġ) Ċ { ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġmethod Ġused Ġto Ġdo Ġthe Ġcalculation ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Field ĊĠĠĠ Ġvar Ġmethod Ġ= ĠCalcul ation Method . OTHER ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMin utes Ġafter ĠMag h rib Ġ( if Ġset , Ġthe Ġtime Ġfor ĠI sha Ġwill Ġbe ĠMag h rib Ġplus ĊĠĠĠĠ Ġ* ĠI sha Interval ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Field ĊĠĠĠ Ġvar Ġis ha Interval Ġ= Ġ 0 ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġmad hab Ġused Ġto Ġcalculate ĠAs r ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Field ĊĠĠĠ Ġvar Ġmad hab Ġ= ĠMad hab . SHA FI ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRules Ġfor Ġpl acing Ġbounds Ġon ĠF aj r Ġand ĠI sha Ġfor Ġhigh Ġlatitude Ġareas ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġhigh Latitude Rule Ġ= ĠHigh Latitude Rule . MIDDLE _ OF _ THE _ N IGHT ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUsed Ġto Ġoptionally Ġadd Ġor Ġsubtract Ġa Ġset Ġamount Ġof Ġtime Ġfrom Ġeach Ġpr ayer Ġtime ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Field ĊĠĠĠ Ġvar Ġadjust ments Ġ= ĠPr ayer Adjust ments () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUsed Ġfor Ġmethod Ġadjust ments ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Field ĊĠĠĠ Ġvar Ġmethod Adjust ments Ġ= ĠPr ayer Adjust ments () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGenerate ĠCalcul ation Parameters Ġfrom Ġfa jr Ġangle Ġand Ġis ha Ġinterval ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġfa jr Angle ĠĠĠ Ġthe Ġangle Ġfor Ġcalculating Ġfa jr ĊĠĠĠĠ Ġ* Ġ@ param Ġis ha Interval Ġthe Ġamount Ġof Ġtime Ġafter Ġmag h rib Ġto Ġhave Ġis ha ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconstructor ( fa jr Angle Ġ: ĠDouble Ġ, Ġis ha Interval Ġ: ĠInt ) Ġ: Ġthis ( fa jr Angle Ġ, Ġ 0 . 0 ) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . ish a Interval Ġ= Ġis ha Interval ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGenerate ĠCalcul ation Parameters Ġfrom Ġangles Ġand Ġa Ġcalculation Ġmethod ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġfa jr Angle Ġthe Ġangle Ġfor Ġcalculating Ġfa jr ĊĠĠĠĠ Ġ* Ġ@ param Ġis ha Angle Ġthe Ġangle Ġfor Ġcalculating Ġis ha ĊĠĠĠĠ Ġ* Ġ@ param Ġmethod ĠĠĠ Ġthe Ġcalculation Ġmethod Ġto Ġuse ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconstructor ( fa jr Angle Ġ: ĠDouble Ġ, Ġis ha Angle Ġ: ĠDouble Ġ, Ġmethod Ġ: ĠCalcul ation Method ) Ġ: Ġthis ( ĊĠĠĠĠĠĠĠ Ġfa jr Angle Ġ, ĊĠĠĠĠĠĠĠ Ġis ha Angle ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . method Ġ= Ġmethod ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGenerate ĠCalcul ation Parameters Ġfrom Ġfa jr Ġangle , Ġis ha Ġinterval , Ġand ĊĠĠĠĠ Ġ* Ġcalculation Ġmethod ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġfa jr Angle ĠĠĠ Ġthe Ġangle Ġfor Ġcalculating Ġfa jr ĊĠĠĠĠ Ġ* Ġ@ param Ġis ha Interval Ġthe Ġamount Ġof Ġtime Ġafter Ġmag h rib Ġto Ġhave Ġis ha ĊĠĠĠĠ Ġ* Ġ@ param Ġmethod ĠĠĠĠĠĠ Ġthe Ġcalculation Ġmethod Ġto Ġuse ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconstructor ( fa jr Angle Ġ: ĠDouble Ġ, Ġis ha Interval Ġ: ĠInt Ġ, Ġmethod Ġ: ĠCalcul ation Method ) Ġ: Ġthis ( ĊĠĠĠĠĠĠĠ Ġfa jr Angle Ġ, ĊĠĠĠĠĠĠĠ Ġis ha Interval ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . method Ġ= Ġmethod ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġthe Ġmethod Ġadjust ments Ġfor Ġthe Ġcurrent Ġcalculation Ġparameters ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġadjust ments Ġthe Ġpr ayer Ġadjust ments ĊĠĠĠĠ Ġ* Ġ@ return Ġthis Ġcalculation Ġparameters Ġinstance ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġwith Method Adjust ments ( adjust ments Ġ: ĠPr ayer Adjust ments ) Ġ: ĠCalcul ation Parameters ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġmethod Adjust ments Ġ= Ġadjust ments ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠNight Port ions ( val Ġfa jr Ġ: ĠDouble Ġ, Ġval Ġis ha Ġ: ĠDouble ) ĊĊĠĠĠ Ġfun Ġnight Port ions () Ġ: ĠNight Port ions ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( high Latitude Rule ) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHigh Latitude Rule . MIDDLE _ OF _ THE _ N IGHT Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNight Port ions ( 1 . 0 Ġ/ Ġ 2 . 0 Ġ, Ġ 1 . 0 Ġ/ Ġ 2 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠHigh Latitude Rule . SE VENT H _ OF _ THE _ N IGHT Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNight Port ions ( 1 . 0 Ġ/ Ġ 7 . 0 Ġ, Ġ 1 . 0 Ġ/ Ġ 7 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠHigh Latitude Rule . TW IL IGHT _ ANGLE Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNight Port ions ( fa jr Angle Ġ/ Ġ 6 0 . 0 Ġ, Ġis ha Angle Ġ/ Ġ 6 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Invalid Ġhigh Ġlatitude Ġrule ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }