AGB  ·  Datenschutz  ·  Impressum  







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

zahl in Uhrzeit darstellen

Ein Thema von Cr3at0r · begonnen am 8. Jul 2006 · letzter Beitrag vom 14. Jul 2006
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Cr3at0r

Registriert seit: 6. Jul 2006
52 Beiträge
 
#1

zahl in Uhrzeit darstellen

  Alt 8. Jul 2006, 14:31
Moin,

also meine Frage ist:

Wie kann ich zb. die Zahl 3000 in einer Uhrzeit darstellen, zb. in einem Label.
Die 3000 soll 3000 Sekunden bedeuten.

MfG
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: zahl in Uhrzeit darstellen

  Alt 8. Jul 2006, 14:36
Delphi-Quellcode:
function FormatTime(t: int64): string; { (gettime by Assarbad) }
begin
  result := IntToStr(t mod 1000);
  case t mod 1000 < 100 of
    true: result := {'0' +} result;
  end;
  t := t div 1000; // -> seconds
  {result := IntToStr(t mod 60) + ' Sekunden ' + result;
  case t mod 60 < 10 of
    true: result := '0' + result;
  end;}

  t := t div 60; //minutes
  result := IntToStr(t mod 60) + ' Min ' + result;
  case t mod 60 < 10 of
    true: result := '0' + result;
  end;
  t := t div 60; //hours
  result := IntToStr(t mod 24) + ' Std ' + result;
  case t mod 60 < 10 of
    true: result := '0' + result;
  end;
  result := IntToStr(t div 24) + ' T ' + result;
end;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Cr3at0r

Registriert seit: 6. Jul 2006
52 Beiträge
 
#3

Re: zahl in Uhrzeit darstellen

  Alt 8. Jul 2006, 14:44
Delphi-Quellcode:
function FormatTime(t: int64): string; { (gettime by Assarbad) }
begin
  result := IntToStr(t mod 1000);
  case t mod 1000 < 100 of
    true: result := {'0' +} result;
  end;
  t := t div 1000; // -> seconds
  {result := IntToStr(t mod 60) + ' Sekunden ' + result;
  case t mod 60 < 10 of
    true: result := '0' + result;
  end;}

  t := t div 60; //minutes
  result := IntToStr(t mod 60) + ' Min ' + result;
  case t mod 60 < 10 of
    true: result := '0' + result;
  end;
  t := t div 60; //hours
  result := IntToStr(t mod 24) + ' Std ' + result;
  case t mod 60 < 10 of
    true: result := '0' + result;
  end;
  result := IntToStr(t div 24) + ' T ' + result;
end;
Mögest mir den auch kruz erklären?
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: zahl in Uhrzeit darstellen

  Alt 8. Jul 2006, 14:59
@Luckie: Sei doch bitte nicht immer so wortkarg und erläutere doch die wichtigen Dinge. Hier beispielsweise, dass man die Zeit in Millisekunden angeben muss.

Edit: Ging es nicht auch einfach so?

Delphi-Quellcode:
function FormatTime(t: int64): string;
begin
  t := t div 1000; // seconds
  result := IntToStr(t mod 60) + ' Sek ' + result;
  t := t div 60; // minutes
  result := IntToStr(t mod 60) + ' Min ' + result;
  t := t div 60; // hours
  result := IntToStr(t mod 24) + ' Std ' + result;
  result := IntToStr(t div 24) + ' T ' + result;
end;
  Mit Zitat antworten Zitat
Cr3at0r

Registriert seit: 6. Jul 2006
52 Beiträge
 
#5

Re: zahl in Uhrzeit darstellen

  Alt 8. Jul 2006, 15:56
Wenn ich ganz ehrlich bin steig ich da noch net ganz durch^^
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: zahl in Uhrzeit darstellen

  Alt 8. Jul 2006, 16:04
Zitat von Cr3at0r:
Wenn ich ganz ehrlich bin steig ich da noch net ganz durch^^
Was genau verstehst du denn nicht? Delphi-Referenz durchsuchendiv und Delphi-Referenz durchsuchenmod sollten kein Problem darstellen.

Aufgerufen wird das ganze zum Beispiel so:

Delphi-Quellcode:
ShowMessage(FormatTime(3000000));

// 3000000 = 3000 * 1000
// ms s
Da der Parameter die Anzahl der Millisekunden erwartet, müsstest du die Sekunden erst umrechnen (mit 1000 multiplizieren), natürlich kannst du auch zu Beginn der Funktion folgendes aufrufen:

t := t * 1000; dann kannst du direkt die Anzahl der Sekunden übergeben.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: zahl in Uhrzeit darstellen

  Alt 8. Jul 2006, 19:12
Hi,

so geht es auch:

Delphi-Quellcode:
uses
  DateUtils; // const SecsPerDay = 86400;

function SecondsToStr(nSeconds: Cardinal): String;
begin
  Result := DateTimeToStr2(nSeconds / SecsPerDay);
end;
Grüße vom marabu

PS: DateTimeToStr2
  Mit Zitat antworten Zitat
Cr3at0r

Registriert seit: 6. Jul 2006
52 Beiträge
 
#8

Re: zahl in Uhrzeit darstellen

  Alt 8. Jul 2006, 19:35
Zitat von marabu:
Hi,

so geht es auch:

Delphi-Quellcode:
uses
  DateUtils; // const SecsPerDay = 86400;

function SecondsToStr(nSeconds: Cardinal): String;
begin
  Result := DateTimeToStr2(nSeconds / SecsPerDay);
end;
Grüße vom marabu

PS: DateTimeToStr2
und nSeconds wären bei mir dann 3000?
Und Cardinal ist ein Typ gell?
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#9

Re: zahl in Uhrzeit darstellen

  Alt 8. Jul 2006, 19:43
Das hast du genau richtig erkannt.

marabu
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#10

Re: zahl in Uhrzeit darstellen

  Alt 8. Jul 2006, 23:02
Also Luckie, von deiner langen Funktion bin ich jetzt etwas überrascht... Ich würd das in einen 2-Zeiler packen

Delphi-Quellcode:
function SecToStr (t : int64) : string ;
var
 DT : TDateTime ;
begin
   DT := t / 60 / 60 / 24 ;
   Result := format ('%s Tage, %s',[Trunc(TD),formatdatetime ('h Stunden, n Minuten und s Sekunden',DT)]) ;
end ;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 03:38 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