<?php
// Source: http://qasweb.org/qasforum/index.php?showtopic=177&st=0
// By: Mohamad Magdy <hide@address.com>
class Salat {
var $year = 1975; // Ø§ÙØ³ÙØ©
var $month = 8; // Ø§ÙØ´Ùر
var $day = 2; // اÙÙÙÙ
var $zone = 2; // ÙØ±Ù Ø§ÙØªÙÙÙØª Ø§ÙØ¹Ø§ÙÙ
Ù
var $long = 29.371; // خط Ø§ÙØ·ÙÙ Ø§ÙØ¬ØºØ±Ø§ÙÙ ÙÙÙ
ÙØ§Ù
var $lat = 47.988; // خط Ø§ÙØ¹Ø±Ø¶ Ø§ÙØ¬ØºØ±Ø§ÙÙ
var $AB2 = - 0.833333; // زاÙÙØ© Ø§ÙØ´Ø±ÙÙ ÙØ§ÙØºØ±ÙØ¨
var $AG2 = - 18; // زاÙÙØ© Ø§ÙØ¹Ø´Ø§Ø¡
var $AJ2 = - 18; // زاÙÙØ© اÙÙØ¬Ø±
var $school = 'Shafi'; // اÙÙ
Ø°ÙØ¨
function setDate($d = 2, $m = 8, $y = 1975) {
$this->year = $y;
$this->month = $m;
$this->day = $d;
}
function setLocation($l1 = 29.371, $l2 = 47.988, $z = 2) {
$this->long = $l1;
$this->lat = $l2;
$this->zone = $z;
}
function setConf($sch = 'Shafi', $sunriseArc = - 0.833333, $ishaArc = -
18, $fajrArc = - 18) {
$this->school = $sch;
$this->AB2 = $sunriseArc;
$this->AG2 = $ishaArc;
$this->AJ2 = $fajrArc;
}
function getPrayTime() {
$prayTime = array();
// ÙØØ³Ø¨ اÙÙÙÙ
Ø§ÙØ¬ÙÙÙØ§ÙÙ
$d = ((367 * $this->year) - (floor((7 / 4) * ($this->year + floor(
($this->month + 9) / 12)))) + floor(275 * ($this->month / 9)) +
$this->day - 730531.5);
// ÙØØ³Ø¨ Ø·ÙÙ Ø§ÙØ´Ù
س اÙÙØ³Ø·Ù
$L = ((280.461 + 0.9856474 * $d) % 360) + ((280.461 + 0.9856474 * $d) -
(int)(280.461 + 0.9856474 * $d));
// Ø«Ù
ÙØØ³Ø¨ ØØµØ© Ø§ÙØ´Ù
س اÙÙØ³Ø·Ù
$M = ((357.528 + 0.9856003 * $d) % 360) + ((357.528 + 0.9856003 * $d) -
(int)(357.528 + 0.9856003 * $d));
// Ø«Ù
ÙØØ³Ø¨ Ø·ÙÙ Ø§ÙØ´Ù
س Ø§ÙØ¨Ø±ÙجÙ
$lambda = $L + 1.915 * sin($M * pi() / 180) + 0.02 * sin(2 * $M * pi()
/ 180);
// Ø«Ù
ÙØØ³Ø¨ Ù
Ù٠دائرة Ø§ÙØ¨Ø±Ùج
$obl = 23.439 - 0.0000004 * $d;
// Ø«Ù
ÙØØ³Ø¨ اÙÙ
Ø·ÙØ¹ اÙÙ
ستÙÙÙ
$alpha = atan(cos($obl * pi() / 180) * tan($lambda * pi() / 180)) * 180
/ pi();
$alpha = $alpha - (360 * floor($alpha / 360));
// Ø«Ù
ÙØ¹Ø¯Ù اÙÙ
Ø·ÙØ¹ اÙÙ
ستÙÙÙ
$alpha = $alpha + 90 * ((int)($lambda / 90) - (int)($alpha / 90));
// ÙØØ³Ø¨ Ø§ÙØ²Ù
٠اÙÙØ¬Ù
Ù Ø¨Ø§ÙØ¯Ø±Ø¬Ø§Øª Ø§ÙØ²Ø§ÙÙØ©
$ST = ((100.46 + 0.985647352 * $d) % 360) + ((100.46 + 0.985647352 * $d)
- (int)(100.46 + 0.985647352 * $d));
// Ø«Ù
ÙØØ³Ø¨ Ù
ÙÙ Ø§ÙØ´Ù
س Ø§ÙØ²Ø§ÙÙ
$Dec = asin(sin($obl * pi() / 180) * sin($lambda * pi() / 180)) * 180 /
pi();
// ÙØØ³Ø¨ Ø²ÙØ§Ù Ø§ÙØ´Ù
س اÙÙØ³Ø·Ù
if ($alpha > $ST) {
$noon = (($alpha - $ST) % 360) + (($alpha - $ST) - (int)($alpha -
$ST));
} else {
$noon = (($ST - $alpha) % 360) - (($ST - $alpha) - (int)($ST -
$alpha));
}
// Ø«Ù
Ø§ÙØ²ÙاÙÙ Ø§ÙØ¹Ø§ÙÙ
Ù
$un_noon = $noon - $this->long;
// Ø«Ù
Ø§ÙØ²Ùا٠اÙÙ
ØÙÙ
$local_noon = $un_noon / 15+$this->zone;
// ÙÙØª ØµÙØ§Ø© Ø§ÙØ¸Ùر
$Dhuhr = $local_noon / 24;
$Dhuhr_h = (int)($Dhuhr * 24 * 60 / 60);
$Dhuhr_m = sprintf("%02d", ($Dhuhr * 24 * 60) % 60);
$prayTime[2] = "$Dhuhr_h:$Dhuhr_m";
if ($this->school == 'Shafi') {
// ÙØØ³Ø¨ Ø¥Ø±ØªÙØ§Ø¹ Ø§ÙØ´Ù
س ÙÙÙØª ØµÙØ§Ø© Ø§ÙØ¹ØµØ± ØØ³Ø¨ اÙÙ
Ø°ÙØ¨ Ø§ÙØ´Ø§ÙعÙ
$U = atan(2+tan(($this->lat - $Dec) * pi() / 180)) * 180 / pi();
// Ø«Ù
ÙØØ³Ø¨ ÙÙØ³ Ø§ÙØ¯Ø§Ø¦Ø± أ٠اÙÙÙØª اÙÙ
تبÙÙ Ù
Ù ÙÙØª Ø§ÙØ¸Ùر ØØªÙ ØµÙØ§Ø© Ø§ÙØ¹ØµØ± ØØ³Ø¨ اÙÙ
Ø°ÙØ¨ Ø§ÙØ´Ø§ÙعÙ
$W = acos((sin((90-$U) * pi() / 180) - sin($Dec * pi() / 180) * sin
($this->lat * pi() / 180)) / (cos($Dec * pi() / 180) * cos
($this->lat * pi() / 180))) * 180 / pi() / 15;
// ÙÙØª ØµÙØ§Ø© Ø§ÙØ¹ØµØ± ØØ³Ø¨ اÙÙ
Ø°ÙØ¨ Ø§ÙØ´Ø§ÙعÙ
$Z = $local_noon + $W;
$SAsr = $Z / 24;
$SAsr_h = (int)($SAsr * 24 * 60 / 60);
$SAsr_m = sprintf("%02d", ($SAsr * 24 * 60) % 60);
$prayTime[3] = "$SAsr_h:$SAsr_m";
} else {
// ÙØØ³Ø¨ Ø¥Ø±ØªÙØ§Ø¹ Ø§ÙØ´Ù
س ÙÙÙØª ØµÙØ§Ø© Ø§ÙØ¹ØµØ± ØØ³Ø¨ اÙÙ
Ø°ÙØ¨ Ø§ÙØÙÙÙ
$T = atan(1+tan(($this->lat - $Dec) * pi() / 180)) * 180 / pi();
// Ø«Ù
ÙØØ³Ø¨ ÙÙØ³ Ø§ÙØ¯Ø§Ø¦Ø± أ٠اÙÙÙØª اÙÙ
تبÙÙ Ù
Ù ÙÙØª Ø§ÙØ¸Ùر ØØªÙ ØµÙØ§Ø© Ø§ÙØ¹ØµØ± ØØ³Ø¨ اÙÙ
Ø°ÙØ¨ Ø§ÙØÙÙÙ
$V = acos((sin((90-$T) * pi() / 180) - sin($Dec * pi() / 180) * sin
($this->lat * pi() / 180)) / (cos($Dec * pi() / 180) * cos
($this->lat * pi() / 180))) * 180 / pi() / 15;
// ÙÙØª ØµÙØ§Ø© Ø§ÙØ¹ØµØ± ØØ³Ø¨ اÙÙ
Ø°ÙØ¨ Ø§ÙØÙÙÙ
$X = $local_noon + $V;
$HAsr = $Dhuhr + $V / 24;
$HAsr_h = (int)($HAsr * 24 * 60 / 60);
$HAsr_m = sprintf("%02d", ($HAsr * 24 * 60) % 60);
$prayTime[3] = "$HAsr_h:$HAsr_m";
}
// ÙØØ³Ø¨ ÙØµÙ ÙÙØ³ اÙÙÙØ§Ø±
$AB = acos((SIN($this->AB2 * pi() / 180) - sin($Dec * pi() / 180) * sin
($this->lat * pi() / 180)) / (cos($Dec * pi() / 180) * cos($this
->lat * pi() / 180))) * 180 / pi();
// ÙÙØª Ø§ÙØ´Ø±ÙÙ
$AC = $local_noon - $AB / 15;
$Sunrise = $AC / 24;
$Sunrise_h = (int)($Sunrise * 24 * 60 / 60);
$Sunrise_m = sprintf("%02d", ($Sunrise * 24 * 60) % 60);
$prayTime[1] = "$Sunrise_h:$Sunrise_m";
// ÙÙØª Ø§ÙØºØ±Ùب
$AE = $local_noon + $AB / 15;
$Sunset = $AE / 24;
$Sunset_h = (int)($Sunset * 24 * 60 / 60);
$Sunset_m = sprintf("%02d", ($Sunset * 24 * 60) % 60);
$prayTime[4] = "$Sunset_h:$Sunset_m";
// ÙØØ³Ø¨ ÙØ¶Ù Ø§ÙØ¯Ø§Ø¦Ø± ÙÙ٠اÙÙÙØª اÙÙ
تبÙÙ Ù
Ù ÙÙØª ØµÙØ§Ø© Ø§ÙØ¸Ùر Ø¥ÙÙ ÙÙØª Ø§ÙØ¹Ø´Ø§Ø¡
$AG = acos((sin($this->AG2 * pi() / 180) - sin($Dec * pi() / 180) * sin
($this->lat * pi() / 180)) / (cos($Dec * pi() / 180) * cos($this
->lat * pi() / 180))) * 180 / pi();
// ÙÙØª ØµÙØ§Ø© Ø§ÙØ¹Ø´Ø§Ø¡
$AH = $local_noon + ($AG / 15);
$Isha = $AH / 24;
$Isha_h = (int)($Isha * 24 * 60 / 60);
$Isha_m = sprintf("%02d", ($Isha * 24 * 60) % 60);
$prayTime[5] = "$Isha_h:$Isha_m";
// ÙØØ³Ø¨ ÙØ¶Ù دائر اÙÙØ¬Ø± ÙÙ٠اÙÙÙØª اÙÙ
تبÙÙ Ù
Ù ÙÙØª ØµÙØ§Ø© اÙÙØ¬Ø± ØØªÙ ÙÙØª ØµÙØ§Ø© Ø§ÙØ¸Ùر
$AJ = acos((sin($this->AJ2 * pi() / 180) - sin($Dec * pi() / 180) * sin
($this->lat * pi() / 180)) / (cos($Dec * pi() / 180) * cos($this
->lat * pi() / 180))) * 180 / pi();
// ÙÙØª ØµÙØ§Ø© اÙÙØ¬Ø±
$AK = $local_noon - $AJ / 15;
$Fajr = $AK / 24;
$Fajr_h = (int)($Fajr * 24 * 60 / 60);
$Fajr_m = sprintf("%02d", ($Fajr * 24 * 60) % 60);
$prayTime[0] = "$Fajr_h:$Fajr_m";
return $prayTime;
}
}
?>