برنامج لا تنسى صلاتك النسخة الجديدة
#26
shagrouni كتب :أين أجد الدّالة؟
يمكنك التغيير يدويا او برمجيا
PHP كود :
function Read_Time_Format(): Boolean;
begin
 Result
:=False;
 
with TRegIniFile.Create(KEY_READ OR KEY_WOW64_64KEY) do begin
 
try
  
RootKey := HKEY_CURRENT_USER;
  IF 
OpenKeyReadOnly('\Control Panel\International') THEN
  
if LowerCase(DSiReadRegistry('\Control Panel\International', 'sTimeFormat', '' ,HKEY_CURRENT_USER, KEY_QUERY_VALUE OR KEY_WOW64_64KEY))<>'hh:mm:ss' then //='hh:mm:ss tt'
     
result:=True
 
finally
   
Free;
 
end;

 
end;
end;

//-------------------- تغيير ---------------
 
procedure Change_Time_Format() ;
 var 
Section: string;
 
begin
   Section 
:= 'Control Panel\International' ;
   
with TRegIniFile.Create('') do
     try
       
RootKey := HKEY_CURRENT_USER;
       
WriteString(Section, 'sTimeFormat', 'HH:mm:ss') ;
       
WriteString(Section, 's1159', '') ;
       
WriteString(Section, 's2359', '') ;

     finally
       
Free;
     
end;
 
end; 
بخصوص اضافة ساعة تم تعديل البرنامج ( مراعاة التوقيت الصيفي )
PHP كود :
function CalcPrayerTimes(anydate:TDateTime;Long,  Lat, Zone:Real;myMethod:Integer=2;Juristic_Methods:Integer=0;Summer:Boolean=False):TstTimes;
  var 
_Summer:0..1;
  
D,L,M,Lambda,Obliquity,Alpha,ST,Dec,Durinal_Arc,Noon,UT_Noon,Local_Noon,Asr_Alt,Asr_Arc
  
,Asr_Time,Sun_Rise,Sun_Set,Esha_Arc,Esha_Time,Fajr_Arc,Fajr_Time:Real;
  
C_Method :TMethodCal;
  function 
_arct(Value:Real):Real;
      
begin
      result
:= RadToDeg(Arccos((Sin(DegToRad(Value)) - Sin(DegToRad(Dec)) * Sin(DegToRad(Lat))) / (Cos(DegToRad(Dec)) * Cos(DegToRad(Lat)))));
      
end;
      function 
_Frac24(Value:Real):Real;
      
begin
      result
:= Frac(Value/24);
      
end;

           
begin
           _Summer
:=0 ;
           if 
Summer then _Summer:=1  ;

            
C_Method:=Calculation_Method(myMethod) ;
              {
نحسب اليوم اليولياني D}
            
D:=DateTimeToJulianDate(anydate)-2451545.0;      //الطريقة السهلة
             
{ نحسب طول الشمس الوسطي}
             
L := FloatMod((280.461 + 0.9856474 * D) , 360);
             
L := LessMore360(L);
             {
نحسب حصة الشمس الوسطي M}
            
M := FloatMod((357.528 + 0.9856003 * D) , 360);
            
M := LessMore360(M);
            {
طول الشمس البروجي Lambda }
            
Lambda := L + 1.915 * Sin(DegToRad(M)) + 0.02 * Sin(DegToRad(2 * M));
            
Lambda := LessMore360(Lambda);
            {
نحسب الميل الكلي لدائرة البروج Obliquity}
             
Obliquity := 23.439 - 0.0000004 * D;
             {
نحسب المطالع المستقيمة للشمس Alpha}
            
Alpha := RadToDeg(Arctan((Cos(DegToRad(Obliquity)) * Tan(DegToRad(Lambda)))));
            
Alpha := LessMore360(Alpha);
            
Alpha := Alpha - (360 * int(Alpha / 360));
            
Alpha := (Alpha + 90 * (Floor(Lambda / 90) - Floor(Alpha / 90)));
            {
نحسب الزمن النجمي بالدرجات st}
             
ST := FloatMod((100.46 + 0.985647352 * D) , 360);
             {
نحسب ميل الشمس الزاوي DEC}
             
Dec := RadToDeg(Arcsin(Sin(DegToRad(Obliquity)) * Sin(DegToRad(Lambda))));

             {
نحسب زوال الشمس الوسطي noon}
             
Noon := Alpha - ST;
             
Noon := LessMore360(Noon);
             {
نحسب الزوال العالمي UT Noon}
             
UT_Noon := Noon - Long;
             {
نحسب الزوال المحلي الذي هو وقت الظهر Local noon}
            
Local_Noon := UT_Noon / 15 + Zone;
            
Asr_Alt := RadToDeg(Arctan((1+Juristic_Methods )+ Tan(DegToRad(Lat - Dec))));
            {
نحسب نصف قوس النهار Durinal_Arc}
            
Durinal_Arc := _arct(-0.8333);
            
Asr_Arc     := _arct(90 - Asr_Alt);
            
Esha_Arc    := _arct(-C_Method.AngleIsha);
            
Fajr_Arc    := _arct(-C_Method.AngleFajr);
            {
نحسب الآن وقت الصلوات الناتج يجب تحويله إلى زمن}
            
Fajr_Time := Local_Noon - (Fajr_Arc / 15);
            
Sun_Rise := Local_Noon - (Durinal_Arc / 15);
            
Asr_Time := Local_Noon + (Asr_Arc / 15);
            
Sun_Set :=  Local_Noon + (Durinal_Arc / 15);
            
Esha_Time := Local_Noon + (Esha_Arc / 15);



 
// Adjust Isha for Umm Al-Qura University
// 90 Min after Maghrib on all Months but Ramadan 120 Min.
If myMethod=3 Then  //begin
   
If GregorianToHijri(anydate).Month=9 Then
      Esha_Time
:=Sun_Set+2
      
Else
      
Esha_Time:=Sun_Set+1.5;

If 
Sun_rise>=Local_Noon Then
   Begin
   Sun_rise 
:= 0;
   
Fajr_Time := 0;
   
End Else
       If 
Fajr_Time>=Sun_Rise Then
          Fajr_Time 
:= 0;

If 
Sun_set<=Local_Noon Then
   Begin
   Sun_set 
:= 0;
   
Esha_Time := 0;
   
End Else
       If 
Esha_Time<=Sun_set Then
          Esha_Time 
:= 0;


     
Result[0]  := _Frac24(Fajr_Time+_Summer);
     
Result[1]  := _Frac24(Sun_Rise+_Summer);
     
Result[2]  := _Frac24(Local_Noon+_Summer);
     
Result[3]  := _Frac24(Asr_Time+_Summer);
     
Result[4]  := _Frac24(Sun_Set+_Summer);
     
Result[5]  := _Frac24(Esha_Time+_Summer);
           
end; 
[صورة: oaH273.png]
الرد


الردود في هذا الموضوع
برنامج لا تنسى صلاتك النسخة الجديدة - بواسطة onexite - 07-09-2014, 07:17 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم