Tekil Mesaj gösterimi
Alt 15 Ocak 2015, 07:00   #1
Çevrimdışı
hAte
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Tarih Farkını Bulmak




İki tarih arasındaki farkı bulmak için bildiğimiz çıkarma işlemini kullanan bir kod.

İki tarih arasındaki farkı bulmak için bildiğimiz çıkarma işlemini kullanan bir kod.

Merhaba Arkadaşlar,

PHP'de iki tarih arasında kaç gün kaldığını hesaplayan komut bulamayınca ben de bu kodu yazdım. İlkokulda İki tarihi alt alta yazmak suretiyle çıkarma yapıyorduk ya. O metotla çalışıyor.

Eğer bu işi halleden daha iyi bir kod,bir hata veya düzeltilebilecek bir nokta bulursanız lütfen haber verin.

<?
/*
* Emre Aladag < emrealadag@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...].net.tr >
* Bildigimiz cikarma islemi yolundan tarih fark hesabi.
*/
//hedef tarihi belirleyelim
$songun=$asilsongun=12;
$sonay=$asilsonay=6;
$sonyil=$asilsonyil=2005;

//bugunun tarihini belirleyelim.
$ilkgun=date("d");
$ilkay=date("m");
$ilkyil=date("Y");

//ileride kullanacagimiz degiskenleri tanimlayalim.
$i=0;
$artikyil=0;

//artik yillar yuzunden kac gun fazla oldugunu hesaplayalim.
for ($i=$ilkyil;$i<=$sonyil;$i++)
{
$var_mi=checkdate(2,29,$i);
if ($var_mi) $artikyil++;
}


//her ayin kac gun ettigini hesaplayalim.
switch ($ilkgun) {
case 1: $ek=31; break;
case 2: $ek=28; break;
case 3: $ek=31; break;
case 4: $ek=30; break;
case 5: $ek=31; break;
case 6: $ek=30; break;
case 7: $ek=31; break;
case 8: $ek=31; break;
case 9: $ek=30; break;
case 10: $ek=31; break;
case 11: $ek=30; break;
case 12: $ek=31; break;
default: $ek=30;
}

/* Eger songun<ilkgun ise songune sonaydan 30-31 gun ekleyip sonaydan 1 ay cikarmak gerekir. Artik yil varsa o da eklenir. */
if ($songun>=$ilkgun)
$farkgun=$songun-$ilkgun+$artikyil;
else {
$farkgun=$songun-$ilkgun+$ek+$artikyil;
$sonay--;
}
/*eger sonay<ilkay ise sonay-ilkay<0 olacagindan sonaya 12 eklenir,sonyil 1 yil azalir. */
if ($sonay>=$ilkay)
$farkay=$sonay-$ilkay;
else {
$farkay=$sonay-$ilkay+12;
$sonyil--;
}

$farkyil=$sonyil-$ilkyil;
//eger herhangi bir tanimlama hatasi yoksa kac gun kaldigi soylenir.
if (($farkgun>=0)&&($farkay>=0)&&($farkyil>=0)) {
$toplamgun=($farkyil*12+$farkay)*30+$farkgun;
print $asilsongun.".".$asilsonay.".".$asilsonyil."'a $farkgun gün, $farkay ay, $farkyil yil; yani $toplamgun gün kaldı.";
}
//not: 30 Gun 10 Ay 1 Yil seklinde ifadeyle karsilasabilirsiniz. Bunu bilerek //duzeltmedim cunku
//duzeltseydim 31 ceken bir ayin kalmasi ile 30 ceken bir ay kalmasi ayni seyler //olurdu
?>

__________________
Bu kez pek bir afili yalnızlık, ağlatan bir kadın kadar düşman. Ağzı bozuk üstelik bırakmıyor acıtmadan.
 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları sohbet bizimmekan sohbet odaları