Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Minuten zählen und als formatierten hh.mm String ausgeben (https://www.delphipraxis.net/109287-minuten-zaehlen-und-als-formatierten-hh-mm-string-ausgeben.html)

torud 27. Feb 2008 16:19


Minuten zählen und als formatierten hh.mm String ausgeben
 
Hallo Wissende

ich erhalte in 5 Parametern die Minuten von diversen Prozessen. Ich will nun alle zusammenrechnen und daraus einen formatierten String erstellen.

Wenn alle minuten mm_1 - mm_5 leer oder 0 sind, dann soll das Ergebnis 0:00 oder 0'00 sein.

Oder z.B. mm_1 = 65 und mm_2 = 36 dann soll das Ergebnis 1:41 oder 1'41 sein.

die folgende Routine macht das schon, aber ich erhalte statt 1:02 => 1:2
Delphi-Quellcode:
mm_tot := mm_1 + mm_2 + mm_3 + mm_4 + mm_5;
hh_tot := (mm_tot div 60);
mm_tot := mm_tot Mod 60;
str_mtime := (inttostr(hh_tot)+''''+IntToStr(mm_tot));
lbl_mtime_udp.Caption := str_mtime;
Kann mir bitte jemand helfen? Ich bin nicht sehr mit der Formatierung von Strings vertraut...

patti 27. Feb 2008 16:24

Re: Minuten zählen und als formatierten hh.mm String ausgebe
 
z.B. so:

Delphi-Quellcode:
mm_tot := mm_1 + mm_2 + mm_3 + mm_4 + mm_5;
hh_tot := (mm_tot div 60);
mm_tot := mm_tot Mod 60;
if mm_tot < 10 then str_mtime := (inttostr(hh_tot)+'''' + '0'+ IntToStr(mm_tot)) //hier
else str_mtime := (inttostr(hh_tot)+''''+IntToStr(mm_tot)); // und hier
lbl_mtime_udp.Caption := str_mtime;
ist zwar nicht perfekt, aber funktioniert ;-)

s-off 27. Feb 2008 16:33

Re: Minuten zählen und als formatierten hh.mm String ausgebe
 
Hallo,

schonmal FormatDateTime probiert?

DeddyH 27. Feb 2008 16:34

Re: Minuten zählen und als formatierten hh.mm String ausgebe
 
Delphi-Quellcode:
lbl_mtime_udp.Caption :=Format('%d:%.2d',[hh_tot,mm_tot]);

marabu 27. Feb 2008 17:31

Re: Minuten zählen und als formatierten hh.mm String ausgebe
 
Einen hätte ich noch:

Delphi-Quellcode:
begin
  dt := {Math.}SumInt([mm_1, mm_2, mm_3, mm_4, mm_5]) / {SysUtils.}MinsPerDay;
  lbl_mtime_udp.Caption := FormatDateTime('h:nn', dt);
end;
Freundliche Grüße

torud 27. Feb 2008 18:36

Re: Minuten zählen und als formatierten hh.mm String ausgebe
 
Danke für die vielen Zuschriften. :-)

Könntet Ihr mir noch sagen, wie ich den "Trenner" optional halten könnte, denn manchmal müsste ich zwischen Stunde und Minuten einen : oder ein ' setzen...

DeddyH 27. Feb 2008 18:38

Re: Minuten zählen und als formatierten hh.mm String ausgebe
 
Delphi-Quellcode:
lbl_mtime_udp.Caption :=Format('%d%s%.2d',[hh_tot,Trenner,mm_tot]);


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:22 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz