AGB  ·  Datenschutz  ·  Impressum  







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

sekunden zu zeit?

Ein Thema von Headi · begonnen am 26. Jan 2006 · letzter Beitrag vom 26. Jan 2006
Antwort Antwort
Headi

Registriert seit: 17. Nov 2005
Ort: Weinfelden
101 Beiträge
 
Delphi 2007 Professional
 
#1

sekunden zu zeit?

  Alt 26. Jan 2006, 18:27
Hallo leute,

Habe leider wieder mal ein kleines Problem.
Es geht darum, sekunden in Zeit umzuwandeln.
Ich habe schon jeden Code versucht, den ich hier finden konnte, aber keiner funktioniert so wie ich es möchte.
Zurzeit benutze ich diesen Code:

Delphi-Quellcode:
function SecondsToTime(wSeconds: Word): TDateTime;
begin
  result := wSeconds / (24 * 60 * 60);
end;
dieser code wandelt aber leider irgendwie nur bis zu 23:00:00 um,
und ich brauche aber Tage:Stunden:Minuten:Sekunden.

Wie kann ich das jetzt machen?

vielen dank schon mal

mfg headi
Pascal
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: sekunden zu zeit?

  Alt 26. Jan 2006, 19:12
Sollte so gehen:
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
marabu

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

Re: sekunden zu zeit?

  Alt 26. Jan 2006, 20:09
Oder so:

Delphi-Quellcode:
// uses DateUtils;

function SecondsToTime(seconds: Cardinal): TDateTime;
begin
  Result := seconds / SecsPerDay;
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
Headi

Registriert seit: 17. Nov 2005
Ort: Weinfelden
101 Beiträge
 
Delphi 2007 Professional
 
#4

Re: sekunden zu zeit?

  Alt 26. Jan 2006, 20:49
Danke erst mal, geht aber irgendwie nicht:

erste funktion:

eingabe= 3600 sekunden (1Stunde)
ausgabe= 0 T 00 Std 00 Min 03 Sekunden 600 //falsch

code:
Edit2.Text:=FormatTime(StrToInt64(Edit1.Text));
zweite funktion:

eingabe= 86399 sekunden (23:59:59)
ausgabe= 23:59:59 // korrekt

eingabe= 86399 sekunden (01 Tag 00:00:01)
ausgabe= 31.12.1899 00:00:01 // falsch

code:
Edit2.Text:=DateTimeToStr(SecondsToTime(StrToInt(Edit1.Text))); vielen dank schon mal für eure hilfe

mfg headi
Pascal
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: sekunden zu zeit?

  Alt 26. Jan 2006, 20:51
Zitat von Headi:
Danke erst mal, geht aber irgendwie nicht:

erste funktion:

eingabe= 3600 sekunden (1Stunde)
ausgabe= 0 T 00 Std 00 Min 03 Sekunden 600 //falsch
Mein Funktion erwartet Millisekunden als Eingabe!
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Headi

Registriert seit: 17. Nov 2005
Ort: Weinfelden
101 Beiträge
 
Delphi 2007 Professional
 
#6

Re: sekunden zu zeit?

  Alt 26. Jan 2006, 21:04
Zitat von Luckie:
Zitat von Headi:
Danke erst mal, geht aber irgendwie nicht:

erste funktion:

eingabe= 3600 sekunden (1Stunde)
ausgabe= 0 T 00 Std 00 Min 03 Sekunden 600 //falsch
Mein Funktion erwartet Millisekunden als Eingabe!
vielen dank!!

Funktioniert jetzt perfekt... man das ich da nicht selbst draufgekommen bin...


greez headi
Pascal
  Mit Zitat antworten Zitat
marabu

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

Re: sekunden zu zeit?

  Alt 26. Jan 2006, 21:05
Hallo Pascal,

wer hat dir gesagt, dass du eine Zeitmenge einfach in ein Datum umwandeln kannst?
DateTimeToStr() ist einfach fehl am Platz:

Delphi-Quellcode:
function LongTimeToStr(seconds: Cardinal): string;
var
  dt: TDateTime;
  days: Integer;
begin
  dt := seconds / SecsPerDay;
  Result := TimeToStr(dt);
  days := Trunc(dt);
  case days of
    0: Result := TimeToStr(dt);
    1: Result := IntToStr(days) + ' Tag ' + TimeToStr(dt);
    else Result := IntToStr(days) + ' Tage ' + TimeToStr(dt);
  end;
end;
Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
Headi

Registriert seit: 17. Nov 2005
Ort: Weinfelden
101 Beiträge
 
Delphi 2007 Professional
 
#8

Re: sekunden zu zeit?

  Alt 26. Jan 2006, 21:22
Zitat von marabu:
Hallo Pascal,

wer hat dir gesagt, dass du eine Zeitmenge einfach in ein Datum umwandeln kannst?
DateTimeToStr() ist einfach fehl am Platz:

Delphi-Quellcode:
function LongTimeToStr(seconds: Cardinal): string;
var
  dt: TDateTime;
  days: Integer;
begin
  dt := seconds / SecsPerDay;
  Result := TimeToStr(dt);
  days := Trunc(dt);
  case days of
    0: Result := TimeToStr(dt);
    1: Result := IntToStr(days) + ' Tag ' + TimeToStr(dt);
    else Result := IntToStr(days) + ' Tage ' + TimeToStr(dt);
  end;
end;
Freundliche Grüße vom marabu
lol... ok das habe ich jetzt nicht gewusst
habe gedacht wenn es diese funktion schon gibt stimmt die auch.. war wohl einfach nicht so.

vielen dank... funktioniert jetzt auch

mfg pascal
Pascal
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:35 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