iki tarih arası pazar

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
Ahmet ALTUNTAŞ
Üye
Mesajlar: 94
Kayıt: 10 Tem 2010 08:05
Konum: TEKİRDAĞ

iki tarih arası pazar

Mesaj gönderen Ahmet ALTUNTAŞ »

Merhaba
2 tarih arasında kaç pazar var nasıl bulabılırım.

Kod: Tümünü seç

var
fark:Integer;
t,tt:Tdate;

begin
t:=datetimepicker1.Date;
tt:=datetimepicker2.Date;

fark:=daysbetween(t,tt); 
edit1.text:=fark;
kod ile 2 tarih arasında kaç gün var buluyorum.fakat arasından pazar gunlerını cıkarmak ıstıyorum.
Ahmet ALTUNTAŞ
MCP - MCTS
MCSA+S - MCSE+S

Başarı Bir Yolculuktur, Varış Noktası Değil...!
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: iki tarih arası pazar

Mesaj gönderen Battosai »

Aklıma ilk gelen çözümü yazayım...

Kod: Tümünü seç

-İki tarih arasındaki gün farkını bul ;
-Sonra bu değere göre bir for döngüsü kur;
-Döngünün içinde sırası gelen tarihin günün pazar olup olmadığına bak.Bunu yapan hazır bir fonksiyon var zaten...
-Pazar ise tanımlayacağın sayı değişkenini 1 arttır...
-Bu işlemi bir fonksiyon olarak yaparsan dönen değere sonucu aktar işte bu kadar :)
Sanırım işini görür...
Kullanıcı avatarı
Ahmet ALTUNTAŞ
Üye
Mesajlar: 94
Kayıt: 10 Tem 2010 08:05
Konum: TEKİRDAĞ

Re: iki tarih arası pazar

Mesaj gönderen Ahmet ALTUNTAŞ »

Cevap için teşekkür ederim
döngüye sokuyorum fakat ya aradaki fak geliyor orn:30
yada tarih 30 kere showmessage oluyo.
orn:showmessage ile tarihi hep 1 arttırarak götürsem pazarmı degılmı kontrol ettiricem ama yapamadım bir türlü.
Rica etsem bir ornek yazabilirmisiniz.
Ahmet ALTUNTAŞ
MCP - MCTS
MCSA+S - MCSE+S

Başarı Bir Yolculuktur, Varış Noktası Değil...!
Kullanıcı avatarı
a.mikayil
Üye
Mesajlar: 83
Kayıt: 07 Ağu 2010 01:55

Re: iki tarih arası pazar

Mesaj gönderen a.mikayil »

Kod: Tümünü seç

var
  fark, i, PazarSayi: Integer;
  t, tt: Tdate;

begin
  PazarSayi := 0;//<== Bunu mutlaka yaz
  t := DateTimePicker1.Date;
  tt := DateTimePicker2.Date;
  fark := DaysBetween(t, tt);// Aradaki farkı atıyoruz

  for I := 0 to fark do //Sıfırdan fark'a kadar düngü koyuyoruz
  begin
    if i = 0 then//Başlangıç tarinin de pazar olup olmadığını kontrol etmek için ilk döngüde 0 ekliyoruz.
      t := t + 0 //(İlk döngüde i=0 olduğundan else 'ye gıtmeyecek)
    else
      t := t + 1;//Sonraki döngülerde her defasında 1 ekliyoruz
    if DayOfTheWeek(t) = 7 then// Her döngüde DayOfTheWeek fonksiyonuyla tarihin pazar olup olmadığını kontrol ediyoruz
      PazarSayi := PazarSayi + 1;// Eğer pazarsa PazarSayi'yi bir artırıyoruz
  end;
  ShowMessage(IntToStr(PazarSayi));// Döngüden çıktıktan sonra PazarSayi'yi gösteriyoruz.
İstikrar sürsün, Türkiye'm büyüsün inşallah.
Kullanıcı avatarı
Ahmet ALTUNTAŞ
Üye
Mesajlar: 94
Kayıt: 10 Tem 2010 08:05
Konum: TEKİRDAĞ

Re: iki tarih arası pazar

Mesaj gönderen Ahmet ALTUNTAŞ »

Kardeş Allah Razı Olsun.
Çok Teşekkür Ederim istediğim gibi pazar günlerini veriyor.
Ahmet ALTUNTAŞ
MCP - MCTS
MCSA+S - MCSE+S

Başarı Bir Yolculuktur, Varış Noktası Değil...!
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: iki tarih arası pazar

Mesaj gönderen conari »

ilk pazarı bulduktan sonra döngüyü uzatmaya gerek yok.
farklı bir yönteml ile de Mod ve div fonksiyonuda kullanılabilir.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
emin_as
Üye
Mesajlar: 559
Kayıt: 01 Eki 2008 10:05
Konum: izmir
İletişim:

Re: iki tarih arası pazar

Mesaj gönderen emin_as »

Tek satırda hesaplayabilirsin.

Kod: Tümünü seç

pazargun:= (trunc(bitistarih -incday(baslatarih, 7-dayoftheweek(baslatarih)) div 7)+1;
Cevapla