Rastgele Saat ve Tarih Üretme

 bcakir
 20 Ocak 2012

Merhaba arkadaşlar bu yazımda Php ve JavaScript ile rastgele sayı, saat ve tarih üretme konusunu ele alacağız. Hatta sizlere örnek olsun diye daha önce işlediğimiz Php ile tarih ve saat işlemleri konusuyla da birleştirip üretilen 2 tarih arasındaki farkı da bulacağız. Uygulamamızda her iki dil için örnek yapacağız. Örnekler birbirinden farklı olabilir ama algoritma mantığını aynı tutarak, yapacağımız örnekleri farklı dillere kolayca (Php, Javascript) çevirebilirsiniz. Uygulamamızın genel içeriği, örnekler üzerinden olacak. Yazımıza Php ile rastgele tarih ve saat üreterek başlayalım.

<?php
$saat=r_sayi(0,23).':'.r_sayi(0,59);
$tarih=r_sayi(1,30).'.'.r_sayi(1,12).'.'.'2012';
echo $saat.' '.$tarih;

//rastgele sayı fonksiyonu
function r_sayi($ilk,$son){
    $sayi = rand($ilk,$son);
    if($sayi<10){
        $sonuc='0'.$sayi;
        return $sonuc;
    }else{
        return $sayi;
    }
}
?>

Yukarıda Php ile rastgele sayı üretmeyi, rastgele sayıları kullanarak da saat ve tarih üretmeyi gördük. Şimdi öğrendiklerimizi biraz daha pekiştirerek eski yazımızda kullandığımız örnekle birleştirelim ve rastgele üretilen iki zaman arasındaki farkı bulalım.

<?php
$ilk_sayi=fark();
$son_sayi=fark();

//iki zaman arasındaki farkı bulma
if($ilk_sayi>$son_sayi){
    $fark=$ilk_sayi-$son_sayi;
}else{
    $fark=$son_sayi-$ilk_sayi;
}

//yil ay gün formatına çevirme
if($fark>=31536000){
    $yil=floor($fark/31536000);
    $ay=floor(($fark%31536000)/2592000);
    $gun=floor((($fark%31536000)%2592000)/86400);
    echo 'Fark: '.$yil.' yıl '.$ay.' ay '.$gun.' gün';
}elseif($fark>=2592000){
    $ay=floor(($fark%31536000)/2592000);
    $gun=floor((($fark%31536000)%2592000)/86400);
    echo 'Fark: '.$ay.' ay '.$gun.' gün kaldı';
}elseif($fark>=86400){
    $gun=floor((($fark%31536000)%2592000)/86400);
    echo 'Fark: '.$gun.' gün kaldı';
}

//rastgele sayı üretme
function r_sayi($ilk,$son){
    $sayi = rand($ilk,$son);
    if($sayi<10){
        $sonuc='0'.$sayi;
        return $sonuc;
    }else{
        return $sayi;
    }
}

//saat ve tarih üretme
function fark(){
    $saat=r_sayi(0,23);
    $dakika=r_sayi(0,59);
    $saniye=r_sayi(0,59);

    $gun=r_sayi(1,30);
    $ay=r_sayi(1,12);
    $yil=r_sayi(2000,2012);

    //normal zaman formatı
    $n_zaman="$saat:$dakika:$saniye - $gun.$ay.$yil";
    //timestamp zaman yapma
    $mk_zaman=strtotime("$gun-$ay-$yil $saat:$dakika:$saniye"); 

    return $mk_zaman;
}
?>

Yukarıda iki zaman arasındaki farkı yıl, gün ve ay cinsinden Php ile bulduk. Rastgele üretilen iki tarih arasındaki gün farkını da JavaScript ile bulalım.

<!DOCTYPE html>
<html>
<head>
<title>JavaScript Tarih Üretme</title>
<script type="text/javascript">
window.onload = function(){
    //rastgele tarih ürettirme
    var ilk_tarih=rastgele(1,31)+'.'+rastgele(1,13)+'.'+rastgele(2000,2013);
    var son_tarih=rastgele(1,31)+'.'+rastgele(1,13)+'.'+rastgele(2000,2013);
    var fark=Date.gunhesapla(ilk_tarih, son_tarih);
    document.getElementById('sonuc').innerHTML='Aradaki fark: '+fark+' gün';
}

//rastgele sayı üretme
function rastgele(ilk,son){
    r_sayi=Math.floor((son-ilk)*Math.random())+ilk;
    if(r_sayi<10){
        sonuc='0'+r_sayi;
        return sonuc;
    }else{
        return r_sayi;
    }
}

//tarihler arasındaki farkı hesaplama
Date.gunhesapla=function(ilk_tarih,son_tarih){
    var a=ilk_tarih.split(/\D+/);
    var b=son_tarih.split(/\D+/);
    var tarih1=new Date(a[2]*1, a[1]-1, a[0]*1);
    var tarih2=new Date(b[2]*1, b[1]-1, b[0]*1);
    var gun=24*60*60*1000;
    var fark=Math.floor(Math.abs(tarih1-tarih2)/gun) ;
    return fark;
}
</script>
</head>
<body>
<div id="sonuc"></div>
</body>
</html>

Yukarıda ise rastgele sayı ve tarih üretme örneğini JavaScript ile yaptık ve bilgimizi iki tarih arasındaki farkı bularak da pekiştirdik. Temel olarak rastgele saat ve tarih üretme örnekleri bu şekildeydi. Siz bu örnekleri geliştirebilir ya da ihtiyacınız olan kısmını kullanabilirsiniz. Böylece bir uygulama yazımızın daha sonuna gelmiş olduk. Yararlı olması dileğiyle.

 783 Okunma

Yazı hakkında görüşlerinizi belirtmek istermisiniz?

Daha fazla JavaScript, Php
Kapat