Jump to content

adham_imp

الأعضاء
  • Content Count

    1
  • Joined

  • Last visited

Community Reputation

0 Neutral

About adham_imp

  • Rank
    عضو جديد
  1. السلام عليكم و رحمة الله و بركاته...، لقد صممت ملف بالسي شارب و استخدمت فيه المعادلات السابق ذكرها و لقد عملت علي اكمل وجه هذا هو الكود لعل البعض يستفيدون منه. 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]
×