AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TimeToStr, mehr als 24 std.

Ein Thema von happyaura · begonnen am 27. Apr 2006 · letzter Beitrag vom 25. Jun 2007
Antwort Antwort
Seite 1 von 2  1 2      
happyaura

Registriert seit: 12. Jan 2005
Ort: Hamburg
73 Beiträge
 
Delphi 6 Personal
 
#1

TimeToStr, mehr als 24 std.

  Alt 27. Apr 2006, 22:42
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
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#2

Re: TimeToStr, mehr als 24 std.

  Alt 27. Apr 2006, 23:00
Hallo,

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

Gruß Hawkeye
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: TimeToStr, mehr als 24 std.

  Alt 28. Apr 2006, 05:50
Zeitwerte sind Uhrzeiten und nicht Zeitspannen. Da der tag nur aus 24 Stunen besteht, gibt es auch kein 25 Uhr.
Markus Kinzler
  Mit Zitat antworten Zitat
MarkusB

Registriert seit: 3. Apr 2004
Ort: Hamburg
105 Beiträge
 
#4

Re: TimeToStr, mehr als 24 std.

  Alt 28. Apr 2006, 06:28
Moin, Moin!

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

Viele Grüße
Markus
  Mit Zitat antworten Zitat
Schlingel

Registriert seit: 15. Feb 2003
Ort: Österreich
67 Beiträge
 
Delphi XE2 Professional
 
#5

Re: TimeToStr, mehr als 24 std.

  Alt 28. Apr 2006, 08:54
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]
  Mit Zitat antworten Zitat
happyaura

Registriert seit: 12. Jan 2005
Ort: Hamburg
73 Beiträge
 
Delphi 6 Personal
 
#6

Re: TimeToStr, mehr als 24 std.

  Alt 28. Apr 2006, 17:05
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
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: TimeToStr, mehr als 24 std.

  Alt 28. Apr 2006, 17:27
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.
Markus Kinzler
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: TimeToStr, mehr als 24 std.

  Alt 28. Apr 2006, 17:48
@mkinzler
Entschuldige die Frage, aber was sind Industrieminuten?
Habe ich noch nie gehört.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: TimeToStr, mehr als 24 std.

  Alt 28. Apr 2006, 17:51
In der Industrie hat die Stunde 100 Minuten, deshalb redet man dann von Industrieminuten.
Markus Kinzler
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: TimeToStr, mehr als 24 std.

  Alt 28. Apr 2006, 17:55
Danke, wieder etwas gelernt.

Klaus
Klaus
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:36 Uhr.
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