Picproje Elektronik Sitesi

SERBEST BÖLGE => Bilim Teknik => Konuyu başlatan: zafzaf82 - 10 Ekim 2008, 19:12:44

Başlık: Miladi(gün,ay,yıl) takvimi ,Hicri(gün,ay,yıl) takvime ç
Gönderen: zafzaf82 - 10 Ekim 2008, 19:12:44
merhaba arkadaşlar Miladi Takvimi Hicir Takvime nasıl dönüştürebilir. nette biraz araştırma yaptım sadece miladi yılı hicri yıla dönüştürme formulu var. Ancak ben gün ay ve yıl olarak dönüşüm yapmak istiyorum.

Örnegin; 10-10-2008 miladi tarihin Hicri Takvimde karşılıgı 9-10-1429 bu şekilde dönüşüm yapabilmek için önerilerini bekliyorum.
Başlık: Miladi(gün,ay,yıl) takvimi ,Hicri(gün,ay,yıl) takvime çevrim
Gönderen: Analyzer - 10 Ekim 2008, 19:19:23
Selam,

Burada asp olarak var. Kaynağı görüntüle dediğinizde kodlar çıkıyor :

http://prayer.al-islam.com/convert.asp

Analyzer
Başlık: Miladi(gün,ay,yıl) takvimi ,Hicri(gün,ay,yıl) takvime çevrim
Gönderen: zafzaf82 - 10 Ekim 2008, 19:21:40
kaynagını nasıl görüntüleyecez bir türlü beceremedim :(
Başlık: Miladi(gün,ay,yıl) takvimi ,Hicri(gün,ay,yıl) takvime çevrim
Gönderen: zafzaf82 - 10 Ekim 2008, 19:27:27
http://dione.astro.science.ankara.edu.tr/muyes/cesit/hicri.htm

bu sayfadaki çevrim çok güzel ancak ben burdaki dönüşümü mikro ile yapmak isiyorum.  bu sayfanın kod kaynagını göster dedim aşagıdaki gibi kodlar çıktı. arada yapılan işlemi mikro ile yaptım ama sonuç hatalı çıkıyo aynı formulu matlab la da yaptım sonuç yinede hatalı çıkıyo. ben bu kodu keil c de yazmak istiyorum yardımcı olabilir misiniz.


function intPart(floatNum){
if (floatNum< -0.0000001){
return Math.ceil(floatNum-0.0000001)
}
return Math.floor(floatNum+0.0000001)
}
function weekDay(wdn){
if(wdn==0){
return "Pazartesi"
}
if(wdn==1){
return "Salı"
}
if(wdn==2){
return "Çarşamba"
}
if(wdn==3){
return "Perşembe"
}
if(wdn==4){
return "Cuma"
}
if(wdn==5){
return "Cumartesi"
}
if(wdn==6){
return "Pazar"
}
return ""

}
function chrToIsl(arg) {
d=parseInt(arg.CDay.value)
m=parseInt(arg.CMonth.value)
y=parseInt(arg.CYear.value)
if ((y>1582)||((y==1582)&&(m>10))||((y==1582)&&(m==10)&&(d>14)))
{
jd=intPart((1461*(y+4800+intPart((m-14)/12)))/4)+intPart((367*(m-2-12*(intPart((m-14)/12))))/12)-
intPart( (3* (intPart(  (y+4900+    intPart( (m-14)/12)     )/100)    )   ) /4)+d-32075
}
else
{
jd = 367*y-intPart((7*(y+5001+intPart((m-9)/7)))/4)+intPart((275*m)/9)+d+1729777
}
arg.JD.value=jd
arg.wd.value=weekDay(jd%7)
l=jd-1948440+10632
n=intPart((l-1)/10631)
l=l-10631*n+354
j=(intPart((10985-l)/5316))*(intPart((50*l)/17719))+(intPart(l/5670))*(intPart((43*l)/15238))
l=l-(intPart((30-j)/15))*(intPart((17719*j)/50))-(intPart(j/16))*(intPart((15238*j)/43))+29
m=intPart((24*l)/709)
d=l-intPart((709*m)/24)
y=30*n+j-30

arg.HDay.value=d
arg.HMonth.value=m
arg.HYear.value=y
}
function islToChr(arg) {
d=parseInt(arg.HDay.value)
m=parseInt(arg.HMonth.value)
y=parseInt(arg.HYear.value)
jd=intPart((11*y+3)/30)+354*y+30*m-intPart((m-1)/2)+d+1948440-385
arg.JD.value=jd
arg.wd.value=weekDay(jd%7)
if (jd> 2299160 )
{
l=jd+68569
n=intPart((4*l)/146097)
l=l-intPart((146097*n+3)/4)
i=intPart((4000*(l+1))/1461001)
l=l-intPart((1461*i)/4)+31
j=intPart((80*l)/2447)
d=l-intPart((2447*j)/80)
l=intPart(j/11)
m=j+2-12*l
y=100*(n-49)+i+l
}
else
{
j=jd+1402
k=intPart((j-1)/1461)
l=j-1461*k
n=intPart((l-1)/365)-intPart(l/1461)
i=l-365*n+30
j=intPart((80*i)/2447)
d=i-intPart((2447*j)/80)
i=intPart(j/11)
m=j+2-12*i
y=4*k+n+i-4716
}

arg.CDay.value=d
arg.CMonth.value=m
arg.CYear.value=y

}

Başlık: Miladi(gün,ay,yıl) takvimi ,Hicri(gün,ay,yıl) takvime çevrim
Gönderen: zafzaf82 - 11 Ekim 2008, 14:12:39
C de kodu aşagıdaki şekilde yazdım ama o algoritmada gunleri yanlış hesaplıyor :(


MILADItoHICRI()
{
Ayy  = ay;
Gunn = gun;
Yill = (yil+2000);

a2 = ceil((Ayy-14)/12);
a1 = ceil((1461*(Yill+4800+a2))/4);
a3 = ceil((367*(Ayy-2-12*a2))/12);
a5 = ceil((Yill+4900+a2)/100);
a4 = ceil((3*(a5))/4);
   
jd = a1 + a3 - a4 + Gunn - 32075;

   L = jd - 1948440 + 10632;

   N = ceil((L-1)/10631);

   L = L - 10631 * N + 354;

a1 = ceil((10985-L)/5316);
a2 = ceil((50*L)/17719);
a3 = ceil(L/5670);
a4 = ceil((43*L)/15238);
   J  = (a1)*(a2)+(a3)*(a4);

a1 = ceil((30-J)/15);
a2 = ceil((17719*J)/50);
a3 = ceil(J/16);
a4 = ceil((15238*J)/43);
   L  = L-(a1)*(a2)-(a3)*(a4)+29;
   
Ayy = ceil((24*L)/ 709);

a1 = ceil((709*Ayy)/ 24);
   Gunn = ceil(L-a1);
   
Yill = (30* N + J -30);

h_gun = Gunn;
h_ay  = Ayy;
h_yil = Yill;  
}
Başlık: Miladi(gün,ay,yıl) takvimi ,Hicri(gün,ay,yıl) takvime çevrim
Gönderen: mihri - 11 Ekim 2008, 21:04:03
lookup table yap diyecem ama kolayına kaçmış olacaz.