برنامج مواقيت الصلاة لكل ولايات الوطن ( للجزائر فقط )
#38
مراحل القمر

[صورة: GTXD7h.png]

كود جافا حولته الى الدلفي
PHP كود :
private void moonPhase(int y, int m, int d)
    {
        
/*
          calculates the moon phase (0-7), accurate to 1 segment.
          0 = > new moon.
          4 => full moon.
          */
    
        
double c,e;
        
double jd;
        
int b;
    
        if (
m < 3) {
            
y--;
            
m += 12;
        }
        ++
m;
        
c =  365.25*y;
        
e =  30.6*m;
        
jd = c+e+d-694039.09;  /* jd is total days elapsed */
        
jd /= 29.53;           /* divide by the moon cycle (29.53 days) */
        
b = (int) jd;           /* int(jd) -> b, take integer part of jd */
        
jd -= b;           /* subtract integer part to leave fractional part of original jd */
        
b = (int) (jd*8 + 0.5);       /* scale fraction from 0-8 and round by adding 0.5 */
        
b = b & 7;           /* 0 and 8 are the same so turn 8 into 0 */
        
        
this.phase =b;
    } 
PHP كود :
function  moonPhase(y: Word; m,d: byte):Byte ;
  var  
c,e,jd:Real;
    
b:Integer;
  
begin

        
if (m < 3) then begin
            y
:=y-1;
            
m:= m+12;

        
end;
        
m:=m+1 ;
        
c :=  365.25*y;
        
e :=  30.6*m;
        
jd := c+e+d-694039.09;  //* jd is total days elapsed */
        
jd := jd/29.53;           //* divide by the moon cycle (29.53 days) */
        
b := Trunc(jd);           //* int(jd) -> b, take integer part of jd */
    
jd :=jd- b;           //* subtract integer part to leave fractional part of original jd */
    
b := Trunc(jd*8 + 0.5);       //* scale fraction from 0-8 and round by adding 0.5 */
    
b := b and 7;           //* 0 and 8 are the same so turn 8 into 0 */
        
result :=b;
    
end; 
PHP كود :
var Year,Month,Day:Word;
   
_Phase:0..8;
begin
 DecodeDate
(Date,Year, Month, Day);
_Phase:=MoonPhase(Year,Month,Day) ;

sStatusBar1.Panels[0].Text:='لعام : '+inttostr(hjritime2(Date).Year) +' هجري';
sLabel2.Caption:=DateToStr(Hejry2Melady(hjritime2(Date).Year,3,12))   ;
sLabel4.Caption:=DateToStr(Hejry2Melady(hjritime2(Date).Year,7,27))   ;
sLabel6.Caption:=DateToStr(Hejry2Melady(hjritime2(Date).Year,8,15))   ;
sLabel8.Caption:=DateToStr(Hejry2Melady(hjritime2(Date).Year,9,1))   ;
sLabel10.Caption:=DateToStr(Hejry2Melady(hjritime2(Date).Year,9,21))   ;
sLabel12.Caption:=DateToStr(Hejry2Melady(hjritime2(Date).Year,9,27))   ;
sLabel14.Caption:=DateToStr(Hejry2Melady(hjritime2(Date).Year,10,1))   ;
sLabel16.Caption:=DateToStr(Hejry2Melady(hjritime2(Date).Year,12,10))   ;
sLabel18.Caption:=DateToStr(Hejry2Melady(hjritime2(Date).Year,1,10))   ;
if 
_Phase in [1..8] then
sAlphaImageList1
.GetIcon(_Phase, sImage1.picture.Icon)
else 
sAlphaImageList1.GetIcon(0, sImage1.picture.Icon) ;
sPanel1.Caption:= strMoonphase[_Phase] ; 
الرد


الردود في هذا الموضوع
برنامج مواقيت الصلاة لكل ولايات الوطن ( للجزائر فقط ) - بواسطة onexite - 29-10-2014, 02:37 PM

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


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