nebras 0 Report post Posted September 2, 2006 شكرا يا اخ سالم.... بارك الله فيك... انا رجل طبيب ولا افهم في الرياضيات كثيرا و قد وفرت علي بشرحك ربما ساعات طويلة لاحل المسالة بنفسي.. جزاك الله عني الف خير د. نبراس الحائري Share this post Link to post Share on other sites
hindawi 0 Report post Posted October 11, 2006 موضوع جديد ومهم للغاية وهذا ما كنت أبحث عنه أولاً أشكر كل من ساهم وشرح حول هذا الموضوع وإني لأرجو ممن يكتب البرنامج أن يضعه بالتفصيل كما هو ليتسنى لنا الإفادة المرجوة في البرمجة فأنا من مبرمجي PIC بلغة ++C ولغة الأسمبلي وأحب أن أشارككم في الموضوع لكي نبني ساعة منزلية تعطينا أوقات الصلاة ولقد سبقني إليها بعض الأخوة ولكنا مقتصرة عندنا ( في سورية ) في المساجد ولا أعلم هل هي دقيقة للغاية أم لا على كل سأحاول أن أبرمج ساعة تكون في منتهى الدقة ونستطيع جميعنا إقتنائها وذلك بسبب رخص سعر PIC ومساعدتكم الكريمة Share this post Link to post Share on other sites
physics2000 0 Report post Posted October 24, 2006 السلام عليكم و رحمة الله و بركاته: جزاكم الله خيرا علي الموضوع الشيق و نفع الله بكم الاسلام و المسلمين .الان انا عملت برنامج بلغت السي شارب فيه اوقات الصلاه معتمدا علي المعادلات و ملف الاكسل لكن عندما قمت بحساب وقت الصلاه لتاريخ اليوم 24/اكتوبر /2006 او حتي شهر نوفمبر لنفس العام (2006)كانت النتائج لاوقات الصلاه غير صحيح بالمره حتي في ملف الاكسل نفسه فارجوا التاكد من حضراتكم ان كان هذا الكلام صحيح لتعم الفائده و جزاكم الله خيرا Share this post Link to post Share on other sites
المبرمج عبدالكريم 0 Report post Posted November 27, 2006 اخواني الاعزاء بارك الله فيكم انا اخوكم المبرمج عبدالكريم (أبو طحمرة في ثاني رد) الله يبارك فيكم واصبح الموضوع واضحا بعد النقاشات خلال السنتين الا قليل اخواني لدي سؤل : اعتبار التوقيت الصيفي ما التغير الذي يحصل عند اعتبار التوقيت صيفي؟ هل تزاد فرق التوقيت +1 ام ماذا بارك الله فيكم Share this post Link to post Share on other sites
Ela-Salaty 0 Report post Posted November 27, 2006 أخي أبو طحمرة في التوقيت الصيفي يزيد فارق التوقيت بساعة مثلا فارق التوقيت في مصر في الشتاء ساعتان و في الصيف ثلاث ساعات و تستطيع تطبق ذلك في معادلات الصلاة LocalNoon := (UTNoon/15) + GMT Share this post Link to post Share on other sites
GALAL2000 0 Report post Posted December 2, 2006 الأخHindawy أنا أيضا أحاول ما تحاوله أنت لكن بلغة الأسمبلي فقط غير أنى لست أدري كيف يستطيع الميكروكنترولر أن يحسب الدوال المثلثية مع العلم أنها ليست من الدوال الذى يستطيع حلها وأرجو منك أو من أي من يعرف من الأخوة الأفاضل أن يجيب علي مثل هذا التساؤل لأن أخر ما توصلت أليه هو أن أحلها بالتحليل العدديpower sieresلكن هناك العديد من المشاكل وأرجو لو أحد يعرف في الأسمبلي و المايكروكنترولر فأعرف منه حلول لهذه المشاكل التي الدوال المثلثية منها وجزاكم الله خيرا وجزا الأخ سالم والأخ محمد مجدي وكل من شارك في هذا الموضوع خير الجزاء[/color] Share this post Link to post Share on other sites
المبرمج عبدالكريم 0 Report post Posted December 2, 2006 شكرا لك اخي الا صلاتي سؤال اخر في بعض البرامج تطلب منك تحديد نصف الكرة هل هو شمالي ام جنوبي ما الفائدة من ذلك ومالتغير الذي يحصل في كلتا الحالتين الثالث هل هناك معادلة خاصة بالامساك وشكرا لكم Share this post Link to post Share on other sites
ليان 0 Report post Posted December 3, 2006 سؤالي للأستاذ محمد مجدي هل المعادلات السابقة لحساب مواقيت الصلاة موثقة في كتب؟؟ واذا كان نعم ماهي هذه الكتب لأني احتاجها في مشروعي اذ لابد من أن يكون المرجع كتاب موثق.. ثاني طلب أريد -جزاك الله خيراً- خطوط الطول والعرض للمدن وشكراً Share this post Link to post Share on other sites
PcUser 0 Report post Posted January 12, 2007 السلام عليكم ورحمة الله في البداية اود شكركم جدا على هذا الموضوع الرائع واسأل الله ان يجعله في ميزان حسناتكم يوم القيامة انه على كل شيء قدير لقد قمت بتطبيق البرنامج وقارنت النتائج لدي بملف ال Excel الذي يحتوي على المعادلات وجائت النتائج مطابقة تماما للملف ولكن بالنظر الى التقويم الرسمي اجد انه يوجد فرق ما يقارب 9 دقائق لصلاة العشاء فقط حيث ان التوقيت الصحيح هو 6:52 ونتائجي هي 6:43 طريقة الحساب هي ام القرى ارجو منكم توضيح سبب المشكله ولكم جزيل الشكر Share this post Link to post Share on other sites
s3eed7 0 Report post Posted February 2, 2007 شكرا اخواني الاعزاء ارجوا لمن يستطيع ان يضع هنا كود بلغة فيجوال بيسك 6 لحساب مواقيت الصلاة نكون له من الشاكرين Share this post Link to post Share on other sites
msamar 0 Report post Posted February 23, 2007 اقتباس (سالم الجعيدي @ 4th Jun 2005, 06:51 AM) صلاة العصر من خلال التأمل في قانون حساب الحصص AR نجد أن الذي يحدد مقدار هذا الحصص هو ارتفاع أو إنخفاض مركز الشمس عن الأفق alt فبتغيير قيمته تتغير قيمة الحصة ولحساب وقت العصر يجب تحديد مقدار ارتفاع مركز الشمس Asr alt عن الأفق وفق القانون ,(( Asr Alt =90- ATAN (1+ TAN( Lat - Dec حيث ان Lat هو عرض البلد و Dec هو ميل الشمس وواضح من قانون حساب ارتفاع العصر أنه يعتمد على أخذ الفرق بين الميل وعرض البلد لذلك لا بد أن تكون قيمة هذا الفارق بالموجب ، وإلا وقع الخلل في حساب وقت العصر كما يشاهد ذلك في شهري يوليو وأغسطس للبلدان التي يقل عرضها عن الميل الكلي للشمس أوفي الشتاء للمدن التي تقع أسفل خط الأستواء لذلك عندما نحسب وقت العصر ببرنامج أكسل أو غيره فإننا نضيف دالة ABS أي دالة القيمة المطلقة التي تحول السالب في آخر القيم إلى موجب كالتالي , ((( Asr Alt =90- ATAN (1+ TAN(ABS( Lat - Dec ثم بعد معرفتنا بإرتفاع العصر نطبق الحاصل في قانون الحصص كالآتي ويصير معرفة العصر Asr Time وفق المعادلة Asr Time = Local Noon + AR / 15 ففي مثالنا لمدينة الدوحة عرضها 25.25 وميل الشمس 22.297 وبالتالي فإن حاصل طرح الميل من العرض تعطي نتيجة موجبة ، لذلك نطبق قانون حساب ارتفاع العصر مباشرة دون تغيير كالتالي Asr alt = 90 – Atan (1+ Tan ( Lat – Dec )), Asr alt = 90 – Atan ( 1 + Tan (25.25 – 22.297), Asr alt = 43.5596 AR = 50.94430 Asr Time = Local Noon + AR / 15 Asr Time = 11:31:41 + 50.94430 / 15 Asr Time = 11:31:41 + 3:23:46 Asr Time = 14:55:27 سالم الجعيدي ----------- سالم الجعيدي ------------- ----سالم الجعيدي شكرا على هذا الموضوع الشيق اني والله اعمل في برمجة المتحكمات PIC && Atmel ولقد نويت ان اعمل ساعة جدارية لمواقيت الصلاة ونضعها في جامع الحي عندنا على روح والدي الذي توفي في 12\2\2007 منذ ايام رحمه الله انا اعيش في سوريا لقد صادفت في بعض الجوامع القريبة وجود نفس الساعات لمواقيت الصلاة متوافقة مع الرزنامة المحلية لمدينة دمشق ولايوجد حتى فارق في الثواني ولكن والله اعلم المشروع نفذ بدون اية قوانين رياضية سوى عملية ارشفة مجردة ضمن المعالجات الذكية واستعراض هذه البيانات على شاشات 7seg وحين القيت بالصدفة بموقعكم هذا القيم والمفيد رعاكم الله وحماكم واني والله ليس لدي خبيرة في المجالات الفلكية انني والله اعمل مهندس برمجيات والكترونيات c/ c++ microchip / atmel ولقد ذهلت لما قد وجدت من معادلات رياضية يمكن ان نتعامل معها كمبيرمجين في اللغات ذات المستوى العالي وخلال تصفحي لموضوع الاستاذ سالم هناك بعض الصور لم استطع اظهارها وهي التالية http://www.arab3.com/upload/images/Jun05/jaidysalem_i3.jpg http://www.arab3.com/upload/images/Jun05/jaidysalem_i2.gif http://www.arab3.com/upload/images/Jun05/j...alem_hhhhhh.jpg http://www.arab3.com/upload/images/Jun05/j...alem_gggggg.jpg http://www.arab3.com/upload/images/Jun05/j...em_equation.jpg ارجوا المساعدة جزاكم الله الخير والبركة اخوكم عمار Share this post Link to post Share on other sites
badwisoft 0 Report post Posted March 3, 2007 السلام عليكم عند محاولتي التعامل مع اجهزة تحديد المواقع GPS وفي نفس الوقت بناء برنامج لحساب اوقات الصلاة واتجاه القبلة احتجت الى بعض الوظائف الغير موجودة في Visual Basic 6 او Visual Basic ,NET وقد يحتاج الكثيرون هذه المعادلات سواء لحساب اوقات الصلاة او غيرها ضع الكود التالية في ما يسمى Module Option Explicit Public Type Vector2D x As Single y As Single End Type Public Const PI As Double = 3.14159265358979 'Tan(1) * 180 Public Const D2R As Double = 1 / (180 * PI) Public Const R2D As Double = 180 * PI Public Const TwoPi As Single = 6.2831853071795 Public Const ThreePiByTwo As Single = 4.71238898038469 Public Const PiByTwo As Single = 1.5707963267949 Private dX As Long Private dY As Long Public Function ArcCos(A As Double) As Double 'Inverse Cosine On Error Resume Next If A = 1 Then ArcCos = 0 Exit Function End If ArcCos = Atn(-A / Sqr(-A * A + 1)) + 2 * Atn(1) On Error GoTo 0 End Function Public Function ArcSin(x As Double) As Double 'Inverse Sine On Error Resume Next ArcSin = Atn(x / Sqr(-x * x + 1)) On Error GoTo 0 End Function Public Function ArcTan(x As Double) As Double 'Inverse Tangent On Error Resume Next ArcTan = Atn(x) * (180 / PI) On Error GoTo 0 End Function Public Function DegToRad(Degrees As Single) As Single 'DegToRad = Degrees / 180 * Pi DegToRad = Degrees * D2R End Function Public Function DotProduct2D(FirstVector As Vector2D, SecondVector As Vector2D) As Single 'Calculates the dotproduct 'Calculate the DotProduct based on FX*SX + FY*SY DotProduct2D = (FirstVector.x * SecondVector.x) + (FirstVector.y * SecondVector.y) 'If DotProduct2D = 0 Then DotProduct2D = 1 -> replaced by: If DotProduct2D = 0 Then DotProduct2D = 1 End If End Function Public Function GetAngle(P As Vector2D, Q As Vector2D) As Single 'Get the angle of 2 vectors, note: 'always assume that the third vector(the origin of the angle) of the 2 vectors is 0, if not it will return odd results Dim tmpAngle As Single tmpAngle = ArcCos(DotProduct2D(P, Q) / (VectorLength2D(Q) * VectorLength2D(P))) GetAngle = RadToDeg(tmpAngle) If Not Sgn(P.x) = Sgn(Q.y) Then GetAngle = 0 - GetAngle End If End Function Public Function GetDifferenceAngle(ByVal sourceAngle As Single, ByVal targetAngle As Single) As Single 'get the difference between the source angle and the target angle (in radians) GetDifferenceAngle = targetAngle - sourceAngle Do While GetDifferenceAngle > PI GetDifferenceAngle = GetDifferenceAngle - TwoPi Loop Do While GetDifferenceAngle < -PI GetDifferenceAngle = GetDifferenceAngle + TwoPi Loop End Function Public Function GetDirection(ByVal xVelocity As Long, ByVal yVelocity As Long) As Single Dim Direction As Single If yVelocity < 0 Then Direction = PI + Atn(xVelocity / yVelocity) ElseIf yVelocity > 0 Then Direction = Atn(xVelocity / yVelocity) If Direction < 0 Then Direction = Direction + TwoPi End If ElseIf xVelocity <= 0 Then Direction = ThreePiByTwo Else Direction = PiByTwo End If GetDirection = Direction End Function Public Function GetDistance(CurX As Long, CurY As Long, NewX As Long, NewY As Long) As Long dX = NewX - CurX dY = NewY - CurY GetDistance = Sqr(dX * dX + dY * dY) End Function Public Function GetSpeed(ByVal xVelocity As Long, ByVal yVelocity As Long) As Single GetSpeed = Sqr(xVelocity ^ 2 + yVelocity ^ 2) End Function Public Function GetVectorPositionFromAngle(Position As Vector2D, Angle As Double, Steps As Double) As Vector2D 'Calculate a new position based on an old position, an angle, and steps GetVectorPositionFromAngle.x = Position.x + Round(Steps * Cos(Angle)) GetVectorPositionFromAngle.y = Position.y + Round(Steps * Sin(Angle)) End Function Public Function GetVelocityX(ByVal Speed As Long, ByVal Direction As Single) As Long GetVelocityX = Speed * Sin(Direction) End Function Public Function GetVelocityY(ByVal Speed As Long, ByVal Direction As Single) As Long GetVelocityY = Speed * Cos(Direction) End Function Public Function IsInTriangle2D(Position As Vector2D, FirstVector As Vector2D, SecondVector As Vector2D, ThirdVector As Vector2D) As Boolean 'Checks if a point is inside or outside a triangle Dim bc As Double Dim ca As Double Dim ab As Double Dim ap As Double Dim bp As Double Dim cp As Double Dim abc As Double bc = SecondVector.x * ThirdVector.y - SecondVector.y * ThirdVector.x ca = ThirdVector.x * FirstVector.y - ThirdVector.y * FirstVector.x ab = FirstVector.x * SecondVector.y - FirstVector.y * SecondVector.x ap = FirstVector.x * Position.y - FirstVector.y * Position.x bp = SecondVector.x * Position.y - SecondVector.y * Position.x cp = ThirdVector.x * Position.y - ThirdVector.y * Position.x abc = Sgn(bc + ca + ab) If (abc * (bc - bp + cp) > 0) And (abc * (ca - cp + ap) > 0) And (abc * (ab - ap + bp) > 0) Then IsInTriangle2D = True End If End Function Public Function RadToDeg(Radians As Single) As Single 'RadToDeg = Radians * 180 / Pi RadToDeg = Radians * R2D End Function Public Function VectorAddition2D(FirstVector As Vector2D, SecondVector As Vector2D) As Vector2D 'Returns two vectors added together With VectorAddition2D 'Add .x = FirstVector.x + SecondVector.x .y = FirstVector.y + SecondVector.y End With End Function Public Function VectorDistance2D(FirstVector As Vector2D, SecondVector As Vector2D) As Single 'Calculates the length based on Phytagoras theory VectorDistance2D = VectorLength2D(VectorSubtract2D(FirstVector, SecondVector)) End Function Public Function VectorLength2D(Vector As Vector2D) As Single 'Calculates the length based on Phytagoras theory VectorLength2D = Sqr((Vector.x ^ 2) + (Vector.y ^ 2)) End Function Public Function VectorNormalize2D(Vector As Vector2D) As Vector2D 'Returns a vector with a length of one, but still in the same direction Dim VecLength As Single VecLength = VectorLength2D(Vector) 'If VecLength = 0 Then VecLength = 1 -> replaced by: If VecLength = 0 Then VecLength = 1 End If With VectorNormalize2D .x = Vector.x / VecLength .y = Vector.y / VecLength End With End Function Public Function VectorSubtract2D(FirstVector As Vector2D, SecondVector As Vector2D) As Vector2D 'Returns the FirstVector subtracted by the SecondVector With VectorSubtract2D 'Subtract the vectors .x = FirstVector.x - SecondVector.x .y = FirstVector.y - SecondVector.y End With End Function لاستخدام نفس الوحدة النمطية في Visual Basic .NET لاتنسى تغيير بعض اسماء الوظائف مثل SQR الى SQRT Atn الى Atan Sgn الى Sign بالتوفيق Share this post Link to post Share on other sites
مروان نابلسي 0 Report post Posted July 6, 2007 السلام عليكم شكر خاص لكل من ساهم في إغناء هذا الموضوع وجزاهم الله كل خير. بعد الأخز بكل المعادلات الرياضية لحساب وقت الصلاة تمكنا وبحمد الله من إتمام برنامج بلغة DELPHI وقد قمنا بإختباره على عدد كبير من المدن وكانت النتائج جيدة جدا . ولكن عندما إختبرنا البرنامج على مدينة Athis_Mons(France واجهتنا مشكلتان: خط العرض:48 درجة 43 دقيقة 0 ثواني ,اللأتجاه شمالي خط الطول:2 درجة 24 دقيقة 0 ثواني ,اللأتجاه شرقي GMT ZONE=2 التاريخ 5/7/2007 طريقة الحساب الجامعة الأسلامية في كراتشي(-18,-18) المشكلة الأولى: --------------------- أتت النتائج على الشكل التالي: الفجر:2:30 ؟؟(خطأ) الشروق:5:52 الظهر:13:54 العصر:18:10 المغرب:21:57 العشاء:25:19 ؟؟؟؟(خطأ) ومقارنة مع برنامج أذان اتت النتائج متشابهة إلا في صلاتي الفجر(الفرق أكثر من ساعة) وفي صلاة العشاء أتت النتيجة 25:19 أي اكبر من 24؟؟؟ وتذكيرا بالمعادلات المستعملة لصلاتي الفجر و العشاء: ISHA TIME=LOCALNOON+(1/15)ACOS ((SIN(-18 )-SIN(Dec)*SIN(Lat))/(COS(Dec)*COS(Lat ISHA TIME=13:54+11:24=25:19 FAJR TIME=LOCALNOON-(1/15)ACOS ((SIN(-18 )-SIN(Dec)*SIN(Lat))/(COS(Dec)*COS(Lat هنا نرى أن وقت العشاء أكبر من 24 ساعة فما العمل في مثل هذه الحالة ؟؟؟ المشكلة الثانية: --------------------- وتتمثل هذه المشكلة في أن نتيجة المعادلة : ((SIN(-18 )-SIN(Dec)*SIN(Lat))/(COS(Dec)*COS(Lat لنفس المدينة ونفس المعطيات المذكورة أعلاه ولكن ليوم 20/6/2007 تساوي: -1.000409 الأمر الذي يتعارض مع خواص ال ACOSX حيث يجب أن تكون قيمةX بين -1 و 1 فما العمل في مثل هذه الحالة؟؟؟ أفيدونا أفادكم الله ,ونظرأ إلى أن هاتين المشكلتين يقفا حاجزا أمام إتمام هذا البرنامج أو أي برنامج اخر مبني على أساس المعادلات المطروحة في هذا الموضوع. Share this post Link to post Share on other sites
hossameldin 0 Report post Posted July 14, 2007 جزاكم الله خيرا و بارك لكم Share this post Link to post Share on other sites
hammoodi 0 Report post Posted August 5, 2007 السلام عليكم المعروف من اقوال الفقهاء وارائهم الماخوذه عن اهل البيت عليهم السلام ان وقت فضيلة صلاة العصر يبدا يكون ظل الشاخص 2/7 اي سبعي الشاخص ، وهو يختلف عن الوقت في المذهب الشافي والذي يكون فيه ظل الشاخص 1/1 بداية لصلاة العصر وسوالي الى الاخوة الكرام هل يمكن تزويدي ببرنامج يحسب مواقيت صلاة العصر على اساس 2/7 اي سبعي الشاخص مع خالص الشكر والتقدير والاحترام اخوكم حمودي بغداد Share this post Link to post Share on other sites
lkassissieh 0 Report post Posted November 24, 2007 عزيزى سالم الجعيدى شكرا لمجهوداتك فى مايتعلق بحساب مواقيت الصلاة انا اقوم بعمل نظام يعتمد على حساب مواعيد الصلاة استخدم لغة ال c# فى احد ردودك على الاخوة الكرام فى الخطوة السادسة طلبت منه تعديل المعادلة Text1.Text = Atn(Cos(23.4382082) * Tan(72.5321)) لتصبح Text1.Text =180/pi* Atn(Cos(23.4382082*Pi/180) * Tan(72.5321*Pi/180)) مع مراعاة أن يكون الناتج لا يقل أو يزيد عن 360° وفق الملاحظات التالية إذا كان طول الشمس البروجي بين صفر و 90 فإن المطالع المستقيمة كما هو إذا كان الطول البروجي بين 90 – 180 فلابد من إضافة 180 على المطالع إذا كان الطول البروجي بين 180 _ 360 فلابد من إضافة 360 للمطالع ولقد قمت باستخدام هذه الطريقة وكانت معادلتى هيه Alpha = 180/Math.PI*Math.Atan(Math.Cos(Obliquity*Math.PI/180) * Math.Tan (Lambda*Math.PI/180)) وبعد التعويض عن قيم ال Obliquity و Lambda تصبح المعادلة Alpha = 180/Math.PI*Math.Atan(Math.Cos(23.4375278*Math.PI/180) * Math.Tan (307.93558507733997*Math.PI/180)) ولكن قيمة ال Alpha =-49.649730631225495 اى قيمة سالبة لاتنتمى الى اى قيمة من 0 - 90 او 90 - 180 او 180 - 360 فاين الخطا فى معادلتى واشكرا لاهتمامك ممكن اشوف الحسابات بلغة C# مشكورين Share this post Link to post Share on other sites
محيي الدين 0 Report post Posted December 23, 2007 _____________.docالسلام عليكم و رحمة الله و بركاته. لقد تحققت بالمشاهدة عند خطوط عرض مختلفة من 30 إلى 55 شمال خط عرض الإستواء من أن ظهور الشفق الأحمر أي الفجر الصادق يكون حينما تكون زاوية قرص الشمس 12 درجة تحت الأفق الشرقي. كما أن الشفق الأحمر يزول حينما تكون زاوية قرص الشمس 12 درجة تحت الأفق الغربي و هو وقت دخول العشاء. أدعو الله سبحانه و تعالى أن يتبع المسلمون أحاديث الرسول عليه الصلاة و السلام التي أوضحت لنا وقت الفجر الصادق بظهور الحمرة في الأفق الشرقي، و دخول و قت العشاء بزوال الشفق الأحمر و ليس كما قال الإمام أبو حنبفة بحلول السواد أي بزوال الشفق الأبيض. انظر الملف المرفق هنا. Share this post Link to post Share on other sites
adham_imp 0 Report post Posted May 24, 2008 السلام عليكم و رحمة الله و بركاته...، لقد صممت ملف بالسي شارب و استخدمت فيه المعادلات السابق ذكرها و لقد عملت علي اكمل وجه هذا هو الكود لعل البعض يستفيدون منه. using System; using System.Collections.Generic; using System.Text; namespace MyClock { class CalcPrayerTimes { double Local_Noon; double Asr_Time; double Esha_Time; double Fajr_Time; double Sun_Set; double Sun_Rise; public CalcPrayerTimes(int Year, int Month, int Day,double Long,double Lat, double Zone) { double D = (367 * Year) - ((Year + (int)((Month + 9) / 12)) * 7 / 4) + (((int)(275 * Month / 9)) + Day - 730531.5); double L = (280.461 + 0.9856474 * D)%360; L = LessMore360(L); double M = (357.528 + 0.9856003 * D)%360; M = LessMore360(M); double Lambda = L + 1.915 * Math.Sin(ToRadian(M)) + 0.02 * Math.Sin(ToRadian(2 * M)); Lambda = LessMore360(Lambda); double Obliquity = 23.439 - 0.0000004 * D; double Alpha = ToDegree(Math.Atan((Math.Cos(ToRadian(Obliquity)) * Math.Tan(ToRadian(Lambda)))));////// Alpha = LessMore360(Alpha); Alpha = Alpha - (360*(int)(Alpha /360)); Alpha = (Alpha + 90 * (Math.Floor(Lambda / 90) - Math.Floor(Alpha / 90))); double ST = (100.46 + 0.985647352 * D)%360; double Dec = ToDegree(Math.Asin(Math.Sin(ToRadian(Obliquity)) * Math.Sin(ToRadian(Lambda))));//////// double Durinal_Arc = ToDegree(Math.Acos((Math.Sin(ToRadian(-0.8333)) - Math.Sin(ToRadian(Dec)) * Math.Sin(ToRadian(Lat))) / (Math.Cos(ToRadian(Dec)) * Math.Cos(ToRadian(Lat))))); double Noon = Alpha - ST; Noon = LessMore360(Noon); double UT_Noon = Noon - Long; Local_Noon = UT_Noon /15 + Zone; double Asr_Alt = ToDegree(Math.Atan(1 + Math.Tan(ToRadian(Lat - Dec)))); double Asr_Arc = ToDegree(Math.Acos((Math.Sin(ToRadian(90 - Asr_Alt)) - Math.Sin(ToRadian(Dec)) * Math.Sin(ToRadian(Lat))) / (Math.Cos(ToRadian(Dec)) * Math.Cos(ToRadian(Lat))))); Asr_Arc = Asr_Arc / 15; Asr_Time = Local_Noon + Asr_Arc; Sun_Rise = Local_Noon - (Durinal_Arc / 15); Sun_Set = Local_Noon + (Durinal_Arc /15); double Esha_Arc = ToDegree(Math.Acos((Math.Sin(ToRadian(-18)) - Math.Sin(ToRadian(Dec)) * Math.Sin(ToRadian(Lat))) / (Math.Cos(ToRadian(Dec)) * Math.Cos(ToRadian(Lat))))); Esha_Time = Local_Noon +( Esha_Arc /15); double Fajr_Arc = ToDegree(Math.Acos((Math.Sin(ToRadian(-18)) - Math.Sin(ToRadian(Dec)) * Math.Sin(ToRadian(Lat))) / (Math.Cos(ToRadian(Dec)) * Math.Cos(ToRadian(Lat))))); Fajr_Time = Local_Noon - (Fajr_Arc /15); } public double ToRadian(double Value) { return (Value * Math.PI / 180); } public double ToDegree(double Value) { return (Value * 180 / Math.PI ); } public double LessMore360(double Value) { if (Value <= 0 || Value > 360) { return (Value + 360); } else return Value; } public int LocalNoonHour { get { return ((int)(Local_Noon)); } } public int LocalNoonMin { get { return (int)(((Local_Noon) - (int)Local_Noon) * 60); } } public int AsrHour { get { return ((int)(Asr_Time)); } } public int AsrMin { get { return (int)(((Asr_Time) - (int)(Asr_Time)) * 60); } } public int SunRiseHour { get { return ((int)(Sun_Rise)); } } public int SunRiseMinr { get { return (int)(((Sun_Rise) - (int)(Sun_Rise)) * 60); } } public int SunSetHour { get { return ((int)(Sun_Set)); } } public int SunSetMin { get { return (int)(((Sun_Set) - (int)(Sun_Set)) * 60); } } public int FajrHour { get { return ((int)(Fajr_Time)); } } public int FajrMin { get { return (int)(((Fajr_Time) - (int)(Fajr_Time)) * 60); } } public int EshaHour { get { return ((int)(Esha_Time)); } } public int EshaMin { get { return (int)(((Esha_Time) - (int)(Esha_Time)) * 60); } } } }[/ font] Share this post Link to post Share on other sites
أبو هادي 0 Report post Posted May 24, 2008 السلام عليكم المشكلة الأولى: --------------------- أتت النتائج على الشكل التالي: الفجر:2:30 ؟؟(خطأ) الشروق:5:52 الظهر:13:54 العصر:18:10 المغرب:21:57 العشاء:25:19 ؟؟؟؟(خطأ) أرى أن النتائج سليمة . وتستطيع استخدام دالة باقي القسمة بالقسمة على 24 أو حذف 24 من أي وقت يزيد عن 24 وإضافة 24 لأي وقت ينقص عن صفر . والوقت 25:19 هو بالحقيقة 01:19 في اليوم التالي . المشكلة الثانية: --------------------- وتتمثل هذه المشكلة في أن نتيجة المعادلة : ((SIN(-18 )-SIN(Dec)*SIN(Lat))/(COS(Dec)*COS(Lat لنفس المدينة ونفس المعطيات المذكورة أعلاه ولكن ليوم 20/6/2007 تساوي: -1.000409 الأمر الذي يتعارض مع خواص ال ACOSX حيث يجب أن تكون قيمةX بين -1 و 1 فما العمل في مثل هذه الحالة؟؟؟ قد أرجع لهذه النقطة في وقت آخر . تحياتي . Share this post Link to post Share on other sites
أبو هادي 0 Report post Posted May 25, 2008 السلام عليكم نعم المشكلة الثانية بهذه المعادلة (عندي) لا حل لها وحلها في برنامجكم هو إعطاء (لا قيمة) لكل وقت يكون ناتج المعادلة خارج النطاق . تحياتي . Share this post Link to post Share on other sites
أحمد الأنصاري 0 Report post Posted June 2, 2008 المشكلة الثانية: --------------------- وتتمثل هذه المشكلة في أن نتيجة المعادلة : ((SIN(-18 )-SIN(Dec)*SIN(Lat))/(COS(Dec)*COS(Lat لنفس المدينة ونفس المعطيات المذكورة أعلاه ولكن ليوم 20/6/2007 تساوي: -1.000409 الأمر الذي يتعارض مع خواص ال ACOSX حيث يجب أن تكون قيمةX بين -1 و 1 فما العمل في مثل هذه الحالة؟؟؟ السلام عليكم ورحمة الله تحية طيبة لجميع الزملاء الكرام Lat= 48°43'00"N & Long= 2°24'00"E 20/6/2007 يكون ميل الشمس 23.43 بمعنى أن غاية ارتفاع الشمس سيكون 64.7ْ وغاية الإنخفاض سيكون -17.85 أي أن الشمس لن تبلغ الشفق الفلكي (-18) بمعنى أنها ستكون فوق الأفق الفلكي في هذا اليوم فاعتمد زاوية اخرى في هذه الحالة غير معيار الجامعة الأسلامية في كراتشي . وفقكم الله أحمد الأنصاري Share this post Link to post Share on other sites
علومة 0 Report post Posted August 22, 2008 [السلام عليكم و رحمة الله و بركاته شكرا لك اخى سا لم الجعيدى انا طالبة فى قسم الا لكترو نيك و انا بصدد التحضير لمشروع تخرجى فى الشهرالمقبل انشاء الله و قد استعملت المعادلات الى و ضعتها لحسا ب موا قيت الصلاة و قد كانت نتا ئج الحساب صحيحة و لكن واجهتنى مشكلة المتمتلة فى: فى الا يام المحصور من 23 الى 30من الشهر التاسع من سنة 2008تكون مواقيت الصلوات خا طئة تماماحيت تكون كاالتالى: الفجر16.24 الضهر23.47 العصر27.14 المغرب29.5 العشاء31.1 ونفس المشكل فى السنوات التا لية :2000 ،2009،2005،2002 ارجو مسا عدتى فى اقرب فرصة لا ن كل المشروع توقف و لم يبقى لى وقت كبير Share this post Link to post Share on other sites
HBMVIP 0 Report post Posted August 24, 2008 Je suis ATOUI HAMZA, voila le code source sous MATLAB 6.5 des temps de la prières % Calcul des temps de prières %============================ clear all,clc % Paramètres d'entrée %==================== % longitude long = 7.49; %long = 10.2167; %long = 51.6; %long = 31.2500; % Altitude Lat = 36.50; %Lat = 36.8333; %Lat = 25.25; %Lat = 30.0500; % Décalage ou la zone par rapport au grinitsh zone = 1; % date en Day/Month/Year Year = 2008; Month = 8; Day = 22; % La partie calcul % Calcul du Jour Julien D = (367*Year)-fix((7/4)*(Year+fix((Month+9)/12)))+fix(275*(Month/9))+Day-730531.5 % Longeur de Soleil L = 280.461+0.9856474*D if L > 360 L = (L/360 - fix(L/360))*360 end % partie de Soleil moyenne M = 357.528+0.9856003*D; if M > 360 M = (M/360 - fix(M/360))*360; end % Longeur de Soleil toural Lambda = L+(1.915*sin(M*pi/180))+(0.02*sin(2*M*pi/180)) % Obliquity Obliquity = 23.439-0.0000004*D % Alpha Alpha = atan(cos(Obliquity*pi/180)*tan(Lambda*pi/180))*(180/pi) if (Alpha > 360) Alpha = (Alpha/360 - fix(Alpha/360))*360 end if (Lambda>0 && Lambda<90) Alpha = Alpha elseif (Lambda>90 && Lambda<180) Alpha = Alpha+180 elseif (Lambda>180 && Lambda<360) Alpha = Alpha+360 end % if (Alpha > 360) % Alpha = (Alpha/360 - fix(Alpha/360))*360 % end Alpha = Alpha+(90*(fix(Lambda/90)-fix(Alpha/90))) % Temps de Soleil ST = 100.46+0.985647352*D if (ST > 360) ST = (ST/360 - fix(ST/360))*360 end % Declinaison Dec = asin(sin(Obliquity*pi/180)*sin(Lambda*pi/180))*(180/pi); %Dec = abs(Dec) % Noon Noon = Alpha-ST if Noon > 360 Noon = (Noon/360 - fix(Noon/360))*360 end if Noon < 0 Noon = Noon+360 end %UTnoon UTnoon = Noon-long % Douhr Localnoon = UTnoon/15+zone % Altitude du centre de soleil "Shafii" AsrAlt = atan(1+tan(abs(Lat-Dec)*pi/180))*(180/pi) % Altitude du centre de soleil "Hanafi" %AsrAlt = atan(2+tan(abs(Lat-Dec)*pi/180))*(180/pi); % Arc de Asr AsrArc = acos((sin((90-AsrAlt)*pi/180)-sin(Dec*pi/180)*sin(Lat*pi/180))/(cos(Dec*pi/180)*cos(Lat*pi/180)))*(180/pi) % Asr AsrTime = Localnoon+(AsrArc/15) % Durinal Arc DurinalArc = acos((sin(-0.8333*pi/180)-sin(Dec*pi/180)*sin(Lat*pi/180))/(cos(Dec*pi/180)*cos(Lat*pi/180)))*(180/pi) % Sun Set SunSet = Localnoon+(DurinalArc/15) % Isha Arc IshaArc = acos((sin(-18*pi/180)-sin(Dec*pi/180)*sin(Lat*pi/180))/(cos(Dec*pi/180)*cos(Lat*pi/180)))*(180/pi) % Isha Time IshaTime = Localnoon+(IshaArc/15) % Fajr Arc FajrArc = IshaArc % Fajr Time FajrTime = Localnoon-(FajrArc/15) % Affichage des temps de prières HR = fix(FajrTime); MN = fix((FajrTime-fix(FajrTime))*60); msg1 = sprintf('Fajr Time %2.2d:%2.2d',HR,MN); disp(msg1); HR = fix(Localnoon); MN = fix((Localnoon-fix(Localnoon))*60); msg2 = sprintf('Douhr Time %2.2d:%2.2d',HR,MN); disp(msg2); HR = fix(AsrTime); MN = fix((AsrTime-fix(AsrTime))*60); msg3 = sprintf('Asr Time %2.2d:%2.2d',HR,MN); disp(msg3); HR = fix(SunSet); MN = fix((SunSet-fix(SunSet))*60); msg4 = sprintf('Magrib Time %2.2d:%2.2d',HR,MN); disp(msg4); HR = fix(IshaTime); MN = fix((IshaTime-fix(IshaTime))*60); msg5 = sprintf('Isha Time %2.2d:%2.2d',HR,MN); disp(msg5); Priere = strvcat(msg1,msg2,msg3,msg4,msg5); msgbox(Priere); Share this post Link to post Share on other sites
محمد عجاج 0 Report post Posted September 25, 2008 aشكراااااااااااااااااا Share this post Link to post Share on other sites
abdul gafur 0 Report post Posted December 12, 2008 الأخ/ العزيز محمد مجدي العزيز السلام عليكم ورحمة الله اتوقع إنكم في الخير والعافية واتمني لكم ولأسرتكم ولمن يعز عليكم تمام الخير والعافية والتوفيق لكتابة المواضيع المفيدة هكدا: وبعد ارجو منكم المساعدة (وهدا ليس لي ولكن لشخض اَخر هو مدرس في إحدي مدارس الشريعة هنا في الهند ويبحث في مجال مواقيت الصلوات في كتب التراثية الإسلامية) له سوال عن الأفاق الغروب والطلوع. يسأل " أي أفق أصح لقياس مواقيت الصلوات حيث يوجد اكثر اربعة اَفاق في الكتب" مثل أفق الحقيقي وأفق الظاهري وغيرها. إن شاء الله سأتصلك بعد تناقش معه في ايام القابل ولكم جزيل الشكر والإحترام والسلام عليكم عبد الغفور توتونغال كيرلا- الهند هاتف: 00919895115768 البريد الإلكتروني cosmosarabic@yahoo.com Share this post Link to post Share on other sites