Dakika formatındaki ifadeyi saat formatına çevirmek

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
theaviator
Üye
Mesajlar: 11
Kayıt: 01 Oca 2009 04:59

Dakika formatındaki ifadeyi saat formatına çevirmek

Mesaj gönderen theaviator »

Merhaba,

Benim 2 sorum olacak:

1 - )

edit3.Text := inttostr(minutesbetween(strtodatetime(edit2.Text),strtodatetime(edit1.Text)));

koduyla iki saat arasındaki farkı dakika olarak bulabiliyorum fakat bunu nasıl saat olarak gösterebilirim? Mesela 135 dakika olarak çıkan sonucu 2:15 olarak yazdırmak istiyorum.

2 - )

DBEdit kontolündeki ifadelere nasıl matematiksel işlem yaptırabilirim? Aslında yukarıdaki kodda yazdığım edit kontolleri aslında DBEdit ama ben DBEdit kontolünde Text özelliğini bulamadığımdan emsal teşkil etmesi amacıyla yazdım.

Şimdiden teşekkür ederim.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Dakika formatındaki ifadeyi saat formatına çevirmek

Mesaj gönderen aslangeri »

s.a.
1. sorunuz için 135 dakikanın 2 saat 15 dakika olduğunu nasıl hesap ettiyseniz bilgisayarada aynı şekilde hesap ettireceksiniz.
:ara mod :ara div
2. sorunuz içinse dbedit in bağlı olduğu tabloyu ve alan adını kullanın.
şöyle diyelim.
dbedit1 tablo1 deki saat1 alanına bağlı.
dbedit2 tablo1 deki saat2 alanına bağlı
dbedit3 tablo1 deki fark alanına bağlı.
sizin yazdığınız kod.

Kod: Tümünü seç

dbedit3.text:= inttostr( minutesbetween( strtodatetime( dbedit2.Text), strtodatetime( dbedit1.Text))); 
olması gereken

Kod: Tümünü seç

tablo1fark.value:=minutesbetween(tablo1saat2.asdatetime, tablo1saat1.asdatetime);
tabiki önce tablonun durumunu edit moduna getirmeniz gerekebilir. bunu yapmazsanız tablonun edit yada insert modunda olmadığına dair mesaj alabilirsiniz.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: Dakika formatındaki ifadeyi saat formatına çevirmek

Mesaj gönderen Battosai »

135 dakikayı 2:15 çevirmek basit iş ama ben yinede yazayım benzer şeyleri kendiniz türetirsiniz artık...

Kod: Tümünü seç

var
saat,dakika:byte;
sonuc:string;
begin
dakika:= minutesbetween( DBEdit1.asdatetime, DBEdit2.asdatetime) ; 
Saat:=dakika div 60;
dakika:=dakika mod 60;
sonuc:=inttostr(saat)+':'+inttostr(dakika);
end;
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: Dakika formatındaki ifadeyi saat formatına çevirmek

Mesaj gönderen csunguray »

1 gün = 1440 dakika

Text olarak almak istiyorsan:

Kod: Tümünü seç

  Edit1.Text := FormatDateTime('hh:nn:ss', 135/1440);
Saat, Dakika, Saniye, MiliSaniye değerlerine ayrıştırmak istiyorsan:

Kod: Tümünü seç

var
  Saat, Dakika, Saniye, MiliSaniye: Word;
begin
  DecodeTime(135/1440, Saat, Dakika, Saniye, MiliSaniye);
end;
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
akdatilla
Üye
Mesajlar: 292
Kayıt: 02 Nis 2006 06:04
Konum: Antalya

Re: Dakika formatındaki ifadeyi saat formatına çevirmek

Mesaj gönderen akdatilla »

Kod: Tümünü seç

function SaatFarkiniVer(t1,t2:Double):string;
var
    t:double;
    sa,da,sn,sl:word;
begin
        t:=abs(t2-t1);
        decodetime(t,sa,da,sn,sl);
        result:=inttostr(sa)+':';
        if da<10 then result:=result+'0'+inttostr(da) else result:=result+inttostr(da)
end;
theaviator
Üye
Mesajlar: 11
Kayıt: 01 Oca 2009 04:59

Re: Dakika formatındaki ifadeyi saat formatına çevirmek

Mesaj gönderen theaviator »

.asdatetime şeklinde yazınca derlemede Undeclared Identifier:'asdatetime' hatası veriyor.
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: Dakika formatındaki ifadeyi saat formatına çevirmek

Mesaj gönderen Battosai »

DBEdit1.datasource.dataset.fieldsbyname('tarih').asdatetime
şeklinde olması lazım ama uzun olyor tabi....
strtodatetime(DBEdit1.text)
şeklinde kullanmak daha kısa oluyor tercih senin
Cevapla