Anneler Günü Hatırlatması

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
boncapelo
Üye
Mesajlar: 49
Kayıt: 01 Tem 2005 02:28
Konum: Bursa
İletişim:

Anneler Günü Hatırlatması

Mesaj gönderen boncapelo »

Slm arkadaşlar bir sorum var.Forumda çok aradım ama birtürlü aradığım şeyi bulamadım...sonunda sormaya karar verdim eğer varsa ve göremediysem özür dilerim öncelikle. soruma gelince...
ben anneler gününde vt'deki kayıtlardan 'cinsiyeti' alanı kadın ve 'cocuk' alanı evet olanların sql sorgusu ile listelenmesini istiyorum fakat anneler gününün belirli bir tarihi yok atıyorum mayıs ayının 2. pazarı gibi bu tarihi nasıl elde edebilirim nasıl bir şart uygulamalıyım sorguda öğretmenler günü için aynı şeyi yaptım ancak tarih sabit olduğu için kolay oldu fakat bunda takıldım lütfen yardım edin herkese teşekkürler...
Saygılarımla...
aLonE CoDeR
Kıdemli Üye
Mesajlar: 1223
Kayıt: 26 Nis 2005 04:08

Mesaj gönderen aLonE CoDeR »

İkinci pazar mı tam bilmiyorum ama eğer öyle bi kaide varsa ikinci pazarı bulmak için DayOfWeek fonksiyonunu kullanabilirsin.

Kolay gele..
boncapelo
Üye
Mesajlar: 49
Kayıt: 01 Tem 2005 02:28
Konum: Bursa
İletişim:

Mesaj gönderen boncapelo »

arkadaşım ben daha yeniyim o yüzden anlamadım ne demek istediğini dediğin fonksiyonu biliyorum ama nasıl kullanılır bilmiyorum ayrıca mantık olarak nasıl bir yol izlemeliyim biraz daha ayrıntılı yol gösterek anlatabilirmisiniz???
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Veritabanı tarafında SQL icinde ikinci pazarı hesaplatmak oldukca zor olacaktir. Kullandığınız veritabanını bilmiyorum ama muhtemelen veritabanı da sizi bu zor SQL cümlesini yazmakta yanlız bırakacaktır.
Diğer bir yandan size anneler gunun hangi tarih olduğu veritabanı tarafında lazım olmayacaktir. Yani anneler gunu ile veritabanında hangi tarih karşılaştırılabilir ki? Sizin SQL cümlesi çocuğu olan cinsitei kadın olan kişileri tespit etmek olacak...
Delphi tarafında ise bir dongu ile ikinci pazarı bulup gerekli yerde kullanabilirsiniz..
ikinci pazar için de en basitinden o yılın 1 mayisiniz başlangıç alıp (01.05.2006) dongu icinde 1'er gun arttirarak ve dayofweek fonksiyonu ile de o gunun pazar olup olmadığına bakarsınız. ilk Pazarı bulunca donguyu kesip 7 gun ilave ederek ikinci pazarı bulmuş olacaksınız....

Kolay gelsin...
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
boncapelo
Üye
Mesajlar: 49
Kayıt: 01 Tem 2005 02:28
Konum: Bursa
İletişim:

Mesaj gönderen boncapelo »

Sayın Fahrettin hocam aydınlattığınız için teşekkürler.evet dediğiniz gibi anneler gününü vt deki bir alan ile karşılaştırmayacağım sorumu yanlış yazmışım bunun için özür diliyiorum asıl düşündüğüm formn açılışında bu günün anneler günü olup olmadığını bulmak ve eğer anneler günü ise bir if döngüsü ile cinsiyeti bayan ve çocuğu olanları alacak sql cümlesi yazmaktı ama dayofweek fonksiyonunu hiç kullanmadım ve nasıl kullanıldığını bilmiyorum sitede dökümanlarda vardı ama yine fazla bişey anlamadım o yüzden örnek bir basit kod sadece dayofweek ile gönderebilrmisiniz???
Kullanıcı avatarı
Murat DİCLE
Kıdemli Üye
Mesajlar: 702
Kayıt: 19 Nis 2006 04:12
Konum: İstanbul
İletişim:

Mesaj gönderen Murat DİCLE »

Kod: Tümünü seç

http://www.delphiturkiye.com/forum/search.php?mode=results
http://www.google.com.tr/search?hl=tr&q=delphi+dayofweek&meta=
http://delphi.about.com/library/rtl/blrtlDayOfWeek.htm
http://4programmers.net/Delphi/DayOfWeek
http://www.wwlnk.com/boheme/delphi/vbtodel/daf0210.html
.
.
.
.
.
.
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

forumda dayofweek icin arama yaparsaniz ornek kod bulacaksınız...

Kolay gelsin...
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

Kod: Tümünü seç

var: 
bulunanpazar,i: integer;
tarih: date;

begin
bulunanpazar:=0;
repeat
      begin
      if dayofweek(tarih)=1 then bulunanpazar:=bulunanpazar+1;
      incday(tarih);
      end;
      until bulunanpazar=2;
kolay gelsin
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Merhaba,
Aşağıdaki örneği programınıza adapte etmeye çalışın.

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var
tarih:string;
SorguTarihi:tdatetime;
begin
   tarih:='14.05.2006'    ;

      if (nthdayofweek(strtodate(tarih) )=2) and (dayofweek(strtodate(tarih))=1) then
      begin

       label1.Caption:='Bugün :'+datetostr(strtodate(tarih));
       label2.Caption:='ve özel bir gün !!!! Çünkü Bugün Anneler Günü ';
        SorguTarihi:=strtodate(tarih);
        label3.Caption:='Sorgulanacak Tarih :'+datetostr(SorguTarihi);

         end
         else
         label1.Caption:='Anneler günü değil';



       end;

uses kısmına dateutils i eklemeyi unutmayın.
DayofWeek fonksiyonu verilen tarihin gününe göre
Pazar ...............1
P.tesi ...............2
Salı ................3
Çarşamba ........4
Perşembe ........5
Cuma ..............6
Ctesi ...............7
karşılarındaki rakamı gösterir.

NthDayofWeek fonksiyonu ise girilen günün kaçıncı haftada olduğunu gösterir. Mesela Mayıs 2006 için örnek verirsek.
1 Mayıs Pazartesinin 1. haftası
8 Mayıs Pazartesinin 2. haftası
15 Mayıs Pazartesinin 3. haftası
22 Mayıs Pazartesinin 4. haftası
29 Mayıs Pazartesinin 5. haftası
olarak döner.

Kolay gelsin.
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

Aslında direk SQL ile bunu gerçekleştirebilirsiniz.
FireBird için örnek:

Kod: Tümünü seç

Select * FROM TABLO
WHERE EXTRACT(WEEKDAY FROM TARIH) = 0 AND EXTRACT(DAY FROM TARIH) BETWEEN 8 AND 14 AND EXTRACT(MONTH FROM TARIH) = 6
Diğer VT'lerde de benzer şekilde yapılabilir.

İyi çalışmalar.
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

veritabanında yapmaya gerek yok, çünkü arkadaş veritabanında böyle bir field olmadığını zaten söylemiş.
saygılarımla
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

Pardon.

İyi takip etmemişim.

İyi çalışmalar.
boncapelo
Üye
Mesajlar: 49
Kayıt: 01 Tem 2005 02:28
Konum: Bursa
İletişim:

Mesaj gönderen boncapelo »

arkadaşlar hepinizden allah razı olsun.ilginizden dolayı ayrıca teşekkür ederim...hemen gönderdiğiniz örnekleri deniyorum baya baya aklıma yattı sanırım olayı anladım sorun çıkmıcak inşallah...
herkese iyi çalışmalar,allah yardımcınız olsun
Allah Razı Olsun...
boncapelo
Üye
Mesajlar: 49
Kayıt: 01 Tem 2005 02:28
Konum: Bursa
İletişim:

Mesaj gönderen boncapelo »

ofenx hocam sizin kodda bugünün anneler günü olup olmadığını kotrol etmiyor sanırım çünkü hep anneler günü diyo...
yani tarihi ne olursa olsun bu gün anneler günü diyo hata mı var yoksa ben sorumu yanlış mı anlattım bi bakabilirmisin tarih sabit vermişiniz sanırım sorun orada...
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

benim yazdığım kodda bir atama hatası var,

Kod: Tümünü seç

tarih := strtodate('01.05.2006');
...
...
...

if date=tarih then showmessage('Bugün Anneler günü');
satırını da eklerseniz, çalışır.
Cevapla