Girilen Doğum Tarihine Göre Doğum Gününü ve Burcunu Hesaplama Programı


19.12.2012-22:52 Tarihinde Eklendi.
www.seyfettinkahveci.com Derecelendirme: 10 / 10 Oy Sayısı: 16003127Toplam Puan: 37770 / Yorum Sayısı: 412003127 adet.


Merhaba arkadaşlar bu yazımda sizlere girilen yıl, ay ve gün bilgisinin haftanın hangi gününe denk geldiğini ve burcunu bulan c++ programını anlatmaya çalışacağım.  Arkadaşlar şimdi aşağıdaki kodları ve açıklamaları dikkatli bir şekilde inceleyelim.

#include <iostream>//kütüphaneler dahil ediliyor
#include <time.h>//kütüphaneler dahil ediliyor
using namespace std;//isim uzayı tanımlanıyor
int main ()
{
  time_t zaman;//1 Ocak 1970 UTC yana geçen saniye sayısını zaman adında değişkene aktarılıyor
  struct tm * zamanbilgisi;// tm(takvim ve saat bilgisi)ni gösteren zamanbilgisi adında bir struct yapısı oluşturuluyor
  int Yil, Ay ,Gun;//integer türünde yil ay gün oluşturuluyor
  char * Haftalar[] = { "Pazar", "Pazartesi",
                       "Salı", "Çarşamba",
                       "Perşembe", "Cuma", "Cumartesi"};//haftalar dizisine haftanın günleri yazılıyor
  cout<<"Yıl Giriniz: "; cin>>Yil;//kullanıcıdan yıl girilmesi isteniyor ve girilen veriler yila aktarılıyor
  cout<<"Ay Giriniz: "; cin>>Ay;//kullanıcıdan ay girilmesi bekleniyor ve girilen veri ay değişkenine aktarılıyor
  cout<<"Gün Giriniz: "; cin>>Gun;//kullanıcıdan gün girilmesi bekleniyor ve girilen veri gün değişkenine aktarılıyor
  time ( &zaman );//zaman referansı zamana dönüştürülüyor
  zamanbilgisi = localtime ( &zaman );//yerel zaman zaman referansındaki değer oluyor
  zamanbilgisi->tm_year = Yil - 1900;//yildan 1900 çıkarılıp zaman bilgisi nesnesinin tm yerarına aktarılıyor
  zamanbilgisi->tm_mon = Ay - 1;//aydan 1 çıkarılıp zaman bilgisi nesnesinin tm_mon una aktarılıyor
  zamanbilgisi->tm_mday = Gun;//gün zaman bilgisi nesnesinin tm_mday a aktarılıyor
  mktime ( zamanbilgisi );//zaman bilgisi kontrol ediliyor
  cout<<"Doğum Gününüz: ";//ekrana yazı yazdırılıyor
  cout<<Haftalar[zamanbilgisi->tm_wday];//hesaplanan değer ekrana yazdırılıyor
  cout<<" Burcunuz";//ekrana yazı yazdırılıyor
  if((Ay==10 and Gun>=24 )or( Ay==11 and Gun<=22)){//eğer belirlenen tarih aralıklarında ise
  cout<<" Akrep";//ekrana akrep yaz
  }////eğer belirlenen tarih aralıklarında ise sonu diğer burçlar için burayı devam ettirin
  return 0;//program bitiriliyor
}

Arkadaşlar bu konuda ve geliştirdiğiniz projelerde anlamadığınız bölümler olursa yorum ekle bölümünden yazın en kısa sürede cevaplamaya çalışırım.İyi Çalışmalar.

Seyfettin KAHVECİ
Balıkesir Üniversitesi
NEF-BOTE



Yazının tamamının kopyalanması yasaktır. En baştaki birkaç paragrafı kopyalayıp, yazıya link verebilirsiniz. Aksi durumda uyarılmaksızın yasal yollara gidilecektir.

Uzun süredir yorumlara cevap veremediğim için sistem yeni yorumlara kapatılmıştır. Anlayışınız için teşekkürler.
Yorumlar
Ad Soyad:Nurbanu BayarŞehir:Eskişehir
Tarih:20.12.2012
Soru Yil adlı değişkenden neden 1900 çıkardık acaba? aynı şekilde Ay-1 satırını da anlayamadım 'Gun' değişkeni de aynı kalmış.Yardımcı olursanız sevinirim
Cevap Gün sayısı tm_mday'e eşitleniyor. tm_mday'ın özelliği ise 1 ile 31 araında değer almasıdır. O yüzden günden değer çıkartmadık.
Ay sayısı tm_mon'a eşitleniyor. tm_mon'un özelliği ise Ocak ayından itibaren olmak üzere 0 ile 11 arasında değer almasıdır. Yani siz ocak ayını 1 girersiniz ama tm_mon'da ocak ayı 0'a eşittir. O sebeple 1 çıkarttık.
Yıl sayısı tm_year'a eşitleniyor. tm_year'ın özelliği ise 1900 yılından bu tarafa geçen yıl sayısını ifade etmesidir. Bu sebeple 1900 çıkarttım.
Umarım yardımcı olabilmişimdir. İyi çalışmalar.