Formatdatetime(now) hakkında sorucuk

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Viper
Üye
Mesajlar: 22
Kayıt: 29 Ağu 2003 09:34
İletişim:

Formatdatetime(now) hakkında sorucuk

Mesaj gönderen Viper »

Edit1.text:=FormatDateTime('hh:nn', Now) dedigimizde saat 00:10 gibi oldugunda bunun 24:10 olarak almasını istiyorum. Bunu nasıl yapmam gerektigi hakkında fikir verecek arkadaslara tesekkuru bir borc bilirim. Saygılar....
DotCom
Kıdemli Üye
Mesajlar: 1696
Kayıt: 11 Tem 2003 10:30
Konum: İzmir
İletişim:

Mesaj gönderen DotCom »

Viper Hocam ,

Kod: Tümünü seç

Edit1.Text:=Timetostr(Now);
Bu komut işinizi görücektir.

Kolay Gelsin ...
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

24:10 diye bir saat yok hocam. 23:59'dan sonra 00.00 olur ve öyle devam eder.

Kolay gelsin.
DotCom
Kıdemli Üye
Mesajlar: 1696
Kayıt: 11 Tem 2003 10:30
Konum: İzmir
İletişim:

Mesaj gönderen DotCom »

Harbiden ya bende kod yazıyom cvp olarak :p Admin doru söylüyo ya.
Viper
Üye
Mesajlar: 22
Kayıt: 29 Ağu 2003 09:34
İletişim:

Mesaj gönderen Viper »

Tamam da bir yolu yokmu ? mesela kodu atıyorum ki yalnıs ama anlatmak icin
if Edit1.text:=formatdatetime(00:nn, now) then
begin
edit1.text:=formatdatetime(24:nn, now) gibi yani..
DotCom
Kıdemli Üye
Mesajlar: 1696
Kayıt: 11 Tem 2003 10:30
Konum: İzmir
İletişim:

Mesaj gönderen DotCom »

sen 24 olmamasına ragmen illede yapmak istersen saati parçalara bölerek birde orada algoritma kurarak atıyorum ;

Kod: Tümünü seç

if saat=00 then begin 
         saat:=24
end;
gibi bir algoritma kurup bu şekilde yapmalısın. Tam olarak kod veremiyorum çünkü dışarıdayım. Dilersen kodlarıda yollayabilirim. İyi Günler...
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

bu tip alışılmadık teknikleri ben doğru bulmuyorum. Bana istediğin olay çok garip geldi, ama yapmak istediğiniz şeyi lafla ifade edersen belki daha uygun çözümler bulunabilir.

Eğer 24:10 gibi yazdırmak istiyorsan, DecodeTime ile saat, dakika ve saniyeye ayır.

if Saat=0 then
Saat := 24;
Edit1.Text := IntToStr(Saat) + ':'+IntToStr(dakika);

şeklinde yazdırabilirsin.

Kolay gelsin.
Viper
Üye
Mesajlar: 22
Kayıt: 29 Ağu 2003 09:34
İletişim:

Mesaj gönderen Viper »

Mustafa hocam soyle aciklayayim. Bir cafe programı dusunun. Fiyat hesaplaması yaparken ornegin , 00:00 -21:00 gibi bir hesap yaparken dogal olarak fiyat yalnıs cıkıyor. 24:00 - 21:00 dogru oluyor :lol:
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

hocam böyle lafla ifade ettiğin zaman değişik öneriler alabilir, daha düzgün bir yöntem kullanabilirsin. Burda olduğu gibi :)

HoursBetween ve MinutesBetween fonksiyonları işini görür. İkisinin açıklaması ve örnekleri sitede Temel kısmında var. Tarih ve Saat fonksiyonları yazısında.

Kolay gelsin.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

@admin'in dediği gibi... Sorunu baştan böyle ifade etseydin çoktan çözülmüştü...

- Tarihi de içine alan değişkenler kullanırsan, 00 olduğunda tarih 1 gün ileri atlayacağından her zaman 00:00 > 23:59 olur... Çünkü bahsettiğim gibi

:arrow: 03.03.2004_00:00 - 02.03.2004_23:59 = 1 dakikadır....
Resim
Resim ....Resim
Viper
Üye
Mesajlar: 22
Kayıt: 29 Ağu 2003 09:34
İletişim:

Mesaj gönderen Viper »

Hocam simdi kafam karıstı. Normal farkı alırken , mesela saat farkı yerine tarihidemi cıkarayım? . Yani formatdatetime('hh:nn',now ) yerine dd.mm.yyyy demi cıkarıcaz ?

Birde hoursbetween ve minutesbetween komutları kullanımına dair ornek verirmisiniz. Sitedeki acıklamada yokta. Sadece ne oldugu yazıyor. Veya ben yalnıs yere bakıyorum.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- Evet tarihi de işin içine karıştıracaksınız... Aksi halde normal çıkarma yapamazsınız... matematiksel yardımcı fonksiyonlar yazmanız lazım gelir...

- Zaten (Now) fonksiyonu içerisinde şu anki tarih de var... Siz değişkeni TTime değil TDateTime olarak belirleyecek ve kayıtlarda bu şekilde bulunmasını sağlayacaksınız...

- InternetCafe'nde saat 00:00'dan sonra ücretsiz hizmet sunmak istemiyorsan :) , ya bu gün devri olan saatler için var olan zorunluğa uyarsın ya da 00:00 olduğunda hesap ister yeniden sayaclarını 0'larsın... :idea: Bu da bir fikir...
Resim
Resim ....Resim
Cevapla