ile

PHP Ödevi 1 – Doğum Günü Kutlama – Yanıt

“birisi” doğru cevabı bilmiş teşekkür ederiz!

Birthday_candles

İlk olarak doğum günü kutlaması yapabilmemiz için dizi oluşturmamız gerekiyor. Bunu iki şekilde yapabiliriz. İç içe diziler kullanarak:

<?php
$arkadaslarim = array(
    array('Deniz Gezmiş', '27/2/1947'),
    array('Hüseyin İnan', '01/01/1949'),
    array('Yusuf Aslan','02/01/1947')
);

İstersek array içinde özel anahtar da kullanabiliriz:

<?php
$arkadaslarim = array(
    array('adi'=>'Deniz Gezmiş', 'dogum-tarihi'=>'27/2/1947'),
    array('adi'=>''Hüseyin İnan', 'dogum-tarihi'=>''01/01/1949'),
    array('adi'=>''Yusuf Aslan','dogum-tarihi'=>''02/01/1947')
);

Türkiye’de zaman hesabı yapacağımız için, timezone bilgisini istanbul olarak belirliyoruz.

date_default_timezone_set('Europe/Istanbul');

Bugünün tarihini alarak bir değişkene atamalıyız ki, arkadaşlarımızın doğum tarihlerini bu değişkenle karşılaştırabilelim

$bugun = date('d/m/Y');

Son olarak tüm dizi elemanları ile bugünün tarihini karşılaştıracağız ve karşılaştırma tutuyorsa, ekrana doğum günü kutlama mesajı yazdıracağız.

foreach ($arkadaslarim as $arkadas)
{
if($arkadas['dogum-tarihi'] == $bugun)
    {
    echo 'Dogum günün kutlu olsun '.$arkadas['adi'];
    }
}

Sonuç olarak tüm kodu görmek istersek:

<?php
// İlk olarak doğum günü kutlaması yapabilmemiz için dizi oluşturmamız gerekiyor. Bunu iki şekilde yapabiliriz. İç içe diziler kullanarak:
//İstersek array içinde özel anahtar da kullanabiliriz:

$arkadaslarim = array(
array('adi'=>'Deniz Gezmiş', 'dogum-tarihi'=>'27/2/1947'),
array('adi'=>''Hüseyin İnan', 'dogum-tarihi'=>''01/01/1949'),
array('adi'=>''Yusuf Aslan','dogum-tarihi'=>''02/01/1947')
);

//Türkiye'de zaman hesabı yapacağımız için, timezone bilgisini istanbul olarak belirliyoruz.
date_default_timezone_set('Europe/Istanbul');

//Bugünün tarihini alarak bir değişkene atamalıyız ki, arkadaşlarımızın doğum tarihlerini bu değişkenle karşılaştırabilelim

$bugun = date('d/m/Y');
//Son olarak tüm dizi elemanları ile bugünün tarihini karşılaştıracağız ve karşılaştırma tutuyorsa, ekrana doğum günü kutlama mesajı yazdıracağız.

foreach ($arkadaslarim as $arkadas)
{
if($arkadas['dogum-tarihi'] == $bugun)
{
echo 'Dogum günün kutlu olsun '.$arkadas['adi'];
}
}
?>

Şimdilik bu kadar. Php öntanımlı birçok farklı fonksiyon da mevcuttur. Bunları detaylı incelemenizi öneririm.

Bir sonraki ödeve kadar görüşmek üzere…

Yorumla

Yorum

  1. Merhaba,
    Kodda mantık hatası var. Şöyle ki; bugünün tarihi ile kişinin doğum tarihini karşılaştırırken yılı da baz alıyor. Eğer yılı da karşılaştırma içine eklerseniz gün-ay aynı olsa bile yıl hiçbir zaman eşleşmeyecektir.
    Karşılaştırmayı sadece gün-ay olarak yapmalısınız.

    http://laravel.io/bin/dXdwv
    Kodunuzu naçizane bu şekilde düzenledim. Bugünün tarihini içinde yıl olmadan alarak, doğum günleri içinde strpos() ile arama yapıyor. Dolayısıyla yılı es geçiyor.

    Benzer bir uygulamayı kendi websitemde üyelerin doğum günlerini kutlamak için yapmıştım. Veritabanından üyenin doğum tarihini “gün-ay” olarak alıp, bugününün tarihi olan gün-ay ile karşılaştırıp eşleşme olanlara tebrik mesajı gönderiyorum.

    İyi çalışmalar.