AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Countdown

Ein Thema von se0man · begonnen am 8. Mai 2004 · letzter Beitrag vom 8. Mai 2004
Antwort Antwort
Seite 1 von 2  1 2   
se0man

Registriert seit: 8. Mär 2004
51 Beiträge
 
#1

Countdown

  Alt 8. Mai 2004, 14:43
Ich bin gerade dabei ein kleines Countdown-Programm zu schreiben,
welcher jede Sekunde die Differenz zwischen,
DateTime(now) und
den in einer StringGrid aufgelisteten Daten,
sprich ZielDatum und ZielUhrzeit, berechnet
und dann das Ergebnis in 4 Labels à tage, stunden, minuten, sekunden
ausgibt.

Meine Problem:
Ich glaube,
ich habe das Ganze viel zu umständlich gemacht (knapp 80 Zeilen).
-> er schafft es nicht, die Berechnung wirklich jede Sekunde auszuführen,
überspringt also manchmal Sekunden im zwei Sekunden-Takt.

Meine Frage:
Habt Ihr vielleicht ein paar Tipps,
oder Hilfen, wir ihr dies bewerkstelligt hättet??

thanx
- se0man
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#2

Re: Countdown

  Alt 8. Mai 2004, 14:48
Differenz: nimm DaysBetween um die Anzahl Tage zu berechnen. Die Zeitspanne kriegst du mit
TimeToStr(Frac(Differenz)); wobei Differenz Zielzeitpunkt-now ist.
Mehr zu den Befehlen findest du in der OH
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#3

Re: Countdown

  Alt 8. Mai 2004, 14:48
[edit]Mods: Doppelpost bitte löschen[/edit]
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
se0man

Registriert seit: 8. Mär 2004
51 Beiträge
 
#4

Re: Countdown

  Alt 8. Mai 2004, 14:58
Hoi,
erstmal danke für die schnelle Antwort.
DaysBetween wäre perfekt,
wenn sie tatsächlich (wie offensichtlich auf von dir angenommen ->Frac),
eine Gleitkommazahl ausspucken würde.
Problem: Sie rundet 23 Stunden und 59 Sekunden auf 0 Tage,
da es kein ganzer Tag ist und gibt dann einen Integer zurück.

Irgendeine andere Idee??
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#5

Re: Countdown

  Alt 8. Mai 2004, 15:05
Ok, ich hab mich nicht ganz gut ausgedrückt, deshalb gibts jetzt Source:
Delphi-Quellcode:
var
  CTime, Diff: TDateTime;
  Days: Integer;
  Time: String;
begin
  CTime := Now;
  Diff := Trunc(ZielDatum)+Frac(ZielUhrzeit)-CTime;
  Days := DaysBetween(CTime,Trunc(ZielDatum)+Frac(ZielUhrzeit));
  Time := TimeToStr(Frac(Diff));
end;
Ich hoffe das war was du meinst, und wegen dem 23:59 Stunden Beispiel, hier sind Werte:
Days wird 0 sein
Time wird '23:59x' sein
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
se0man

Registriert seit: 8. Mär 2004
51 Beiträge
 
#6

Re: Countdown

  Alt 8. Mai 2004, 15:38

Yes,
Genau das war es,
was ich suchte!
Glaub' mir, du willst gar nicht sehen wie mein Source vorher aussah.

Thanx a lot

- se0man
  Mit Zitat antworten Zitat
se0man

Registriert seit: 8. Mär 2004
51 Beiträge
 
#7

Re: Countdown

  Alt 8. Mai 2004, 15:41
Das einzige,
was mir gerade noch auffiel:

Was soll Trunc/Frac bei Datum/Uhrzeit bezwecken?
Sind doch gar keine Kommazahlen!?
Ist das nicht überflüssig?

- se0man
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#8

Re: Countdown

  Alt 8. Mai 2004, 15:46
Ähm, TDateTime ist ein Double. Der Teil vor dem Komma (also das was du mit Trunc bekommst), gibt die Tage seit dem 30.12.1899 an. Der Teil nach dem Komma (das was Frac zurückgibt), gibt die Uhrzeit an, also in verstrichenen Tagen (1/24 = 1 Stunde etc.). Ich verwende seit einem Fehler in der Anwendung (irgendwo war da nach dem Komma was) immer Trunc und Frac, wenn ich mit Datum/Zeit arbeite.
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
se0man

Registriert seit: 8. Mär 2004
51 Beiträge
 
#9

Re: Countdown

  Alt 8. Mai 2004, 15:50

Habe ich dich richtig verstanden,
dass beispielsweise die Funktion DateToStr
für unzuverlässig hälst,
wenn es darum geht aus einer TDataTime-Variable
das Datum zu filtern?

- se0man
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#10

Re: Countdown

  Alt 8. Mai 2004, 15:58
Nö, aber ich hab ein Datum aus mehreren Variablen zusammengestellt (allesamt Float), und dabei brauchte ich immer nur gewisse Teile. Aus irgendeinem Grund hat mir das beim Zusammenrechnen Fehler ergeben (nicht bei DateToStrm ,sondern beim Rechnen), und somit verwende ich immer Trunc und Frac. Du kannst es aber auch weglassen.
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 22:28 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