Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TimeToStr, mehr als 24 std. (https://www.delphipraxis.net/68321-timetostr-mehr-als-24-std.html)

happyaura 27. Apr 2006 22:42


TimeToStr, mehr als 24 std.
 
Hallo allerseits,
gibt es eine funktion, mit der ich mir Zeiten als string ausgeben lassen kann? allerdings auch längere Zeiten als 24 Std. ist da schon was fertig vorhanden oder soll man sich das ggf selbst basteln? ist sicher schnell möglich, aber schöner würds aussehen, wenn man eine fertige funktion nutzen könnte

Delphi-Quellcode:
zeit: TDatetime;

zeit:= 25/24;
Label1.caption:=timetostr(zeit); //gewünschte ausgabe: 25:00:00 oder ähnliches

Hawkeye219 27. Apr 2006 23:00

Re: TimeToStr, mehr als 24 std.
 
Hallo,

marabus Lösung kennst du ja bereits. Die Delphi-Routinen zeigen meiner Meinung nach max. 24 Stunden an.

Gruß Hawkeye

mkinzler 28. Apr 2006 05:50

Re: TimeToStr, mehr als 24 std.
 
Zeitwerte sind Uhrzeiten und nicht Zeitspannen. Da der tag nur aus 24 Stunen besteht, gibt es auch kein 25 Uhr.

MarkusB 28. Apr 2006 06:28

Re: TimeToStr, mehr als 24 std.
 
Moin, Moin!

... "DaySpan", "DaysBetween", "HourSpan", "HoursBetween", usw ..., usw ... in "DateTime routines" ...

Viele Grüße
Markus
:gruebel:

Schlingel 28. Apr 2006 08:54

Re: TimeToStr, mehr als 24 std.
 
Habs so gelösst..

Delphi-Quellcode:
////////////////////////////////////////////////////////////////////////////////
function TimeToStringFormat(DeltaTime: TDateTime; MSecEnabled: Boolean): String;
var Hour, Min, Sec, MSec: Word;
begin
  DecodeTime(DeltaTime, Hour, Min, Sec, MSec);
case MsecEnabled of
  True : Result:= IntToStr(Hour + (Round(Int(DeltaTime+(1/86400))*24))) + DateTimeToStringFormat(DeltaTime, ':nn:ss,zzz');
else
         Result:= IntToStr(Hour + (Round(Int(DeltaTime+(1/86400))*24))) + DateTimeToStringFormat(DeltaTime, ':nn:ss');
end;end;
////////////////////////////////////////////////////////////////////////////////
function DateTimeToStringFormat(DateTime: TDateTime; Format: String): String;
var tmp: String;
begin
  DateTimeToString(tmp, Format, DateTime);
  Result:= tmp;
end;
////////////////////////////////////////////////////////////////////////////////
Aufruf Bsp:

Delphi-Quellcode:
TimeToStringFormat(10.0, True) = '240:00:00,000';
TimeToStringFormat(10.0, False) = '240:00:00;
Grüsse
Schlingel

[edit=Sharky] Ich habe die /// gekürzt um eine einen Scrollbalken zu vermeiden. Mfg, Sharky[/edit]

happyaura 28. Apr 2006 17:05

Re: TimeToStr, mehr als 24 std.
 
Hallo,
vielen Dnak für die Antworten.

@mkanzler
Zitat:

Zeitwerte sind Uhrzeiten und nicht Zeitspannen.
das ist mir soweit klar, wobei ich sie im moment auch als zeitspanne nutze. so kann ich 2 zeiten ohne weiteres addieren (now + intervall= neuer zeitpunkt) gibt es einen anderen datentyp, der da für mich sinnvoller ist?

@marcusB
ich hab nur einen Zeitpunkt, den ich in diesem format ausgeben möchte.

@Schlingel
so eine funktion wollt ich umgehen.


hab es jetzt als
Delphi-Quellcode:
inttostr(24*trunc(dat)+trunc(frac(dat)*24))+FormatDateTime(':nn:ss',dat);
gelöst. Hätt ja sein können, dass eine Funktion mir das so ausgibt, die ich noch nicht kannte.

Gruß Martin

mkinzler 28. Apr 2006 17:27

Re: TimeToStr, mehr als 24 std.
 
Zitat:

das ist mir soweit klar, wobei ich sie im moment auch als zeitspanne nutze. so kann ich 2 zeiten ohne weiteres addieren (now + intervall= neuer zeitpunkt) gibt es einen anderen datentyp, der da für mich sinnvoller ist?
Für Zeispannen (z.B. Zeit zwischen 2 Zeitpunkten mit Intervall > 24 Std oder Wochen-/Monatsarbeitszeiten nimmt am am Besten Integerwerte und speichert die Spanne in Sekunden/Munuten oder Industrieminuten ab.

Klaus01 28. Apr 2006 17:48

Re: TimeToStr, mehr als 24 std.
 
@mkinzler
Entschuldige die Frage, aber was sind Industrieminuten?
Habe ich noch nie gehört.

Grüße
Klaus

mkinzler 28. Apr 2006 17:51

Re: TimeToStr, mehr als 24 std.
 
In der Industrie hat die Stunde 100 Minuten, deshalb redet man dann von Industrieminuten.

Klaus01 28. Apr 2006 17:55

Re: TimeToStr, mehr als 24 std.
 
Danke, wieder etwas gelernt.

Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:12 Uhr.
Seite 1 von 2  1 2      

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