Time işleminde Between kullanımı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Time işleminde Between kullanımı

Mesaj gönderen brs »

Selam; İki saat arasında Between komutunu nasıl kullanabilirim...

Kod: Tümünü seç

procedure TForm1.Button3Click(Sender: TObject);
var
  StartTime: Double;
  EndTime: Double;
begin
  StartTime := StrToTime('01:00:00');
  EndTime := StrToTime('03:00:00');
  if Between StartTime = EndTime then
  begin

  end;
end;
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: Time işleminde Between kullanımı

Mesaj gönderen unicorn64 »

DateUtils de bulunan SecondsBetween fonksiyonu işinizi görür
bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Time işleminde Between kullanımı

Mesaj gönderen Lord_Ares »

Ek bir bilgide ben paylaşayım belki işinize yarar. Sanırım zaman karşılaştırması veya farkı alacaksın. Öyle düşündüğüm için bunu paylaştım farklı birşeyse kusura bakmazsın :D

DecodeTime verdiğiniz bir zaman birimini saat, dakika, saniye ve salise şeklinde ayıran bir prosedürdür.

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var
zaman:TDateTime;
saat,dakika,saniye,salise:word;
begin
zaman:=now;
DecodeTime(zaman,saat,dakika,saniye,salise);
ShowMessage('Şuan Saat= '+IntToStr(saat)+#13+#10+'Dakika= '+IntToStr(dakika)+#13+#10+'Saniye= '+IntToStr(saniye)+#13+#10+'Salise= '+IntToStr(salise));
end;

Veya iki tarih arasındaki gün farkını almak istiyorsanız DaysBetween(baslangıç_tarihi, bitiş_tarihi) kullanabilirsiniz.
En son Lord_Ares tarafından 25 May 2015 06:49 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: Time işleminde Between kullanımı

Mesaj gönderen brs »

Normalde database içinde iki tarih arasında yapmış olduğumuz aramayı ben Listview de yaptırma istiyorum onedenden dolayı BETWEEN odaklandım

Kod: Tümünü seç

     
Close;
SQL.Clear;
SQL.Add('SELECT * FROM PLAYLIST');
SQL.Add('Where PROGRAMADI Like ' + QuotedStr('%' + Edit1.Text + '%'));
SQL.Add('And YTARIH BETWEEN :Tarih1 AND :Tarih2 Order By YTARIH');
ParamByName('Tarih1').AsDate := MonthCalendar1.Date;
ParamByName('Tarih2').AsDate := MonthCalendar2.Date;
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Time işleminde Between kullanımı

Mesaj gönderen Lord_Ares »

Anladım ozaman şuda aklınızda bulunsun CompareDate fonksiyonu. iki tarihin birbirine eşit olup olmadığını bulan bir fonksiyondur eğer verilen iki tarih eşitse sıfır değeri döndürür.
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: Time işleminde Between kullanımı

Mesaj gönderen brs »

Sorunu çözdüm emeği geçen herkese teşekkür ederim....

Kod: Tümünü seç

 if (SecondsBetween(StrToTime(Items[I].SubItems[0]), StrToTime('07:00:00')) > 0) and (Items[I].SubItems[5] ='Test') then
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: Time işleminde Between kullanımı

Mesaj gönderen brs »

brs yazdı:Sorunu çözdüm emeği geçen herkese teşekkür ederim....

Kod: Tümünü seç

 if (SecondsBetween(StrToTime(Items[I].SubItems[0]), StrToTime('07:00:00')) > 0) and (Items[I].SubItems[5] ='Test') then
begin
showmessage('var');
end;
:mrgreen: Sorunu çözdüğümü sanıyordum yanılmışım konu halen güncel...

Not: iki saat arasında sorgu...
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Time işleminde Between kullanımı

Mesaj gönderen Lord_Ares »

:))) oyy çok güldürdün beni brs arkadaşım allahta seni güldürsün güzel insan :D (çözüm düşünüyorum aklıma gelen olursa yardımcı olamaya çalışacağım)
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Time işleminde Between kullanımı

Mesaj gönderen SimaWB »

İki saati karşılaştırmak için bkz. CompareTime
There's no place like 127.0.0.1
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: Time işleminde Between kullanımı

Mesaj gönderen brs »

Lord_Ares yazdı::))) oyy çok güldürdün beni brs arkadaşım allahta seni güldürsün güzel insan :D (çözüm düşünüyorum aklıma gelen olursa yardımcı olamaya çalışacağım)

Bende kendi halime hem :mrgreen: hemde :x ;

Normal şartlarda databaseye kayıt öncesi listviewde between komutu ile kontrol edip, sonra databaseye kaydetme işlemi yapmaktı fakat evdeki hesap çarşıya tutmadı, :cry: bu nedenden değişiklik yaparak databasede kontrolü yaptıracağım;


Fakat her saat dilimini ayrı ayrı kontrol yapmak istediğimde kodlama uzayıp gidiyor aşağıdaki kodlamayı nasıl kısalta bilirim...

00:00:00 ile 01:00:00
01:00:00 ile 02:00:00
02:00:00 ile 03:00:00 diye yirmi dört saati nasıl kısalta bilirim???

Kod: Tümünü seç

procedure TForm1.Button3Click(Sender: TObject);
begin
  with Playlist do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM PLAYLIST');
    SQL.Add('Where ICERIK Like ' + QuotedStr('%' + 'Lansman' + '%'));
    SQL.Add('And START BETWEEN :Time1 AND :Time2');
    ParamByName('Time1').AsTime := StrToTime('00:00:00');
    ParamByName('Time2').AsTime := StrToTime('01:00:00');
    Prepared := True;
    Open;
    if Not IsEmpty then // Kayıt Varsa
    begin
      Showmessage('var');
    end;
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM PLAYLIST');
    SQL.Add('Where ICERIK Like ' + QuotedStr('%' + 'Lansman' + '%'));
    SQL.Add('And START BETWEEN :Time1 AND :Time2');
    ParamByName('Time1').AsTime := StrToTime('01:00:00');
    ParamByName('Time2').AsTime := StrToTime('02:00:00');
    Prepared := True;
    Open;
    if Not IsEmpty then // Kayıt Varsa
    begin
      Showmessage('var');
    end;
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM PLAYLIST');
    SQL.Add('Where ICERIK Like ' + QuotedStr('%' + 'Lansman' + '%'));
    SQL.Add('And START BETWEEN :Time1 AND :Time2');
    ParamByName('Time1').AsTime := StrToTime('02:00:00');
    ParamByName('Time2').AsTime := StrToTime('03:00:00');
    Prepared := True;
    Open;
    if Not IsEmpty then // Kayıt Varsa
    begin
      Showmessage('var');
    end;
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM PLAYLIST');
    SQL.Add('Where ICERIK Like ' + QuotedStr('%' + 'Lansman' + '%'));
    SQL.Add('And START BETWEEN :Time1 AND :Time2');
    ParamByName('Time1').AsTime := StrToTime('03:00:00');
    ParamByName('Time2').AsTime := StrToTime('04:00:00');
    Prepared := True;
    Open;
    if Not IsEmpty then // Kayıt Varsa
    begin
      Showmessage('var');
    end
    else
    begin
      Showmessage('yok');
    end;
  end;
end;
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Cevapla