AGB  ·  Datenschutz  ·  Impressum  







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

Countdown der auf Now Zeit zurück greift

Ein Thema von bellyman · begonnen am 3. Dez 2006 · letzter Beitrag vom 15. Jan 2007
Antwort Antwort
bellyman

Registriert seit: 3. Dez 2006
1 Beiträge
 
#1

Countdown der auf Now Zeit zurück greift

  Alt 3. Dez 2006, 12:31
Hey leute, bin noch n ziemlicher newbie in Sachen Delphi und habe eine Frage.

Ich möchte einen Countdown in meine Form einbauen. Dieser soll die Systemzeit errechnen, berechnen wie lange es von der Systemzeit noch bis 10:00 Uhr dauert und die Restzeit fortlaufend in deinem Label anzeigen. Wie geht das?
Es ist also kein normaler Countdown mit festgelegter Zeit sondern mit einer die sich ständig ändert...


DAAAANKE schonmal
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#2

Re: Countdown der auf Now Zeit zurück greift

  Alt 3. Dez 2006, 14:55
Hi und Herzlich Willkommen in der DP


Zitat von bellyman:
Ich möchte einen Countdown in meine Form einbauen. Dieser soll die Systemzeit errechnen, berechnen wie lange es von der Systemzeit noch bis 10:00 Uhr dauert und die Restzeit fortlaufend in deinem Label anzeigen. Wie geht das?
Was davon weißt du denn schon? Fang einfach mal mit dem groben Ansatz an, wie hast du dir es denn gedacht? Die Systemzeit bekommst du auf jeden Fall mit now. Da solltest du in der Delphi Hilfe schon ein wenig zu finden. Wenn du hier schaust, wirst du auch Funktionen finden, die dir die Systemzeit in Stunden, Minuten und Sekunden umrechnet (decodeTime).
Mit der aktuellen Uhrzeit sollte es ja leicht möglich sein, die Zeit bis 10:00 Uhr zu berechnen. Diese Differenz kannst du (z.B. mit einem Timer) jede Sekunde um einen konstanten Wert anpassen und die verbleibende Zeit anzeigen.

Gruß Der Unwissende
  Mit Zitat antworten Zitat
Balu der Bär
(Gast)

n/a Beiträge
 
#3

Re: Countdown der auf Now Zeit zurück greift

  Alt 3. Dez 2006, 15:23
Eventuell dazu einfach Delphi-Referenz durchsuchenHoursBetween, Delphi-Referenz durchsuchenMinutesBetween und Delphi-Referenz durchsuchenSecondsBetween.
  Mit Zitat antworten Zitat
Darkchild

Registriert seit: 13. Okt 2006
Ort: NRW
169 Beiträge
 
Delphi 2006 Enterprise
 
#4

Re: Countdown der auf Now Zeit zurück greift

  Alt 7. Dez 2006, 06:53
Mahlzeit,

also wie schon oben erwähnt bekommst du über now die aktuelle zeit z.B. so

Delphi-Quellcode:
Procedure TfrmFrom1.getTimebuttonclick()
var
aktuelleZeit:DateTime;
begin
aktuelleZeit := (now);
end;
So ungefähr und Du hast dann in der Variablen AktuelleZeit die gerade zu dem Zeitpunkt aktuelle Zeit drin stehen.
Dann noch ein edit Feld oder so in dem Du die zu Erreichende Zeit eingibst und diese beiden Zeiten kannst du dann an die Funktionen übergeben die schon genannt wurden wie z.B. MinutesBetween, aber um diese zu verwenden musst Du in den Uses die DateUtils eintragen, ansonsten klappt das nicht.

Und wenn Du dann den errechneten Wert zurückbekommen hast kannst Du z.B. den Timer benutzen und statt immer 1 sekunde drauf addieren zu lassen, wird eine abgezogen und bei erreichen von null ein hübscher Sound abgespielt, oder was auch immer Dir dazu einfällt, aber so in etwa würde ich es machen.

Gruss
Darkchild
Ich bin der Geist der stets verneint und das mit recht, denn alles was entsteht ist wert das es zugrunde geht, drum besser wär das nichts entstünde, so ist denn alles was ihr Sünde, Zerstörung, kurz das Böse nennt, mein eigendliches Element.
  Mit Zitat antworten Zitat
oldmax

Registriert seit: 27. Apr 2006
Ort: Gieboldehausen
167 Beiträge
 
#5

Re: Countdown der auf Now Zeit zurück greift

  Alt 7. Dez 2006, 08:37
Hi
so geht's auch. Hier mal ein kleiner Test von mir:
Ich habe mal 3 Editfelder und einen Timer auf eine Form gezogen und eine globale Variablen deklariert:

Differenzzeit :TTime; In edit1.Text habe ich '10:00:00' eingetragen= Morgends um 10 ist die Welt....

In Create die Zeit initialisieren
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
   Edit1.Text:='10:00:00'; //Morgends um 10 ist die Welt....
   Edit2.Text:=FormatDateTime('hh:nn:ss',time );//Aktuelle Zeit
   Differenzzeit :=strToTime(Edit2.Text)-Time;
   Edit3.Text:=FormatDateTime('hh:nn:ss',Differenzzeit );// der CountDown läuft..
end;
und im Timer berechnen und visualisieren....

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
   Edit2.Text:=FormatDateTime('hh:nn:ss',time );//Aktuelle Zeit
   Differenzzeit :=strToTime(Edit1.Text)-Time;
   Edit3.Text:=FormatDateTime('hh:nn:ss',Differenzzeit );// der CountDown läuft..

   if Differenzzeit <0 then Timer1.Enabled:=False
end;
Gruß oldmax
Noch ist mein Rechner mir zu Diensten.... ansonsten habe ich die Macht ihn zu vernichten !
  Mit Zitat antworten Zitat
oldmax

Registriert seit: 27. Apr 2006
Ort: Gieboldehausen
167 Beiträge
 
#6

Re: Countdown der auf Now Zeit zurück greift

  Alt 7. Dez 2006, 09:42
Hi
Hab grad nochmal die Überschrift gelesen und hab da noch eine Bemerkung zu
Die Now-Zeit beinhaltet Datum und Zeit und ist vom Typ TDateTime. Natürlich kann man die auch einsetzen und muß man sogar, wenn man Datumsübergreifend arbeiten will. wenn es allerdings nur um die Zeit geht, also ohne Datumswechsel, dann reicht Time vom Typ TTime.
Ist noch jemand, dem ich bei der Verwirrung helfen kann ?
Gruß oldmax
Noch ist mein Rechner mir zu Diensten.... ansonsten habe ich die Macht ihn zu vernichten !
  Mit Zitat antworten Zitat
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Countdown der auf Now Zeit zurück greift

  Alt 7. Dez 2006, 09:50
Zitat von oldmax:
Ist noch jemand, dem ich bei der Verwirrung helfen kann ?
Klar .. mir
in der System.Pas bzw. Controls.pas steht:
Delphi-Quellcode:
  
TDateTime = type Double;
TDate = type TDateTime;
TTime = type TDateTime;
Warum ist den dann TTime besser als TDateTime?
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat
oldmax

Registriert seit: 27. Apr 2006
Ort: Gieboldehausen
167 Beiträge
 
#8

Re: Countdown der auf Now Zeit zurück greift

  Alt 7. Dez 2006, 11:56
Hi
Tja.... hab grad mal in der Hilfe nachgesehen, du hast recht. Aber die endgültige Verwirrung bringt dann der Text, das ein TDate nur den Datumsanteil liefert, ohne den Kommateil. ? Trotzdem aber ein TDateTime-Typ ist ?
Ach, ich machs wie immer, ich probier und wenn's funnzt, was soll diese Pingeligkeit
Also, nur zum Verständnis, im Prinzip ist ein TDatetime eine Realzahl. Die Zahlen vorm Komma sind die Tage seit denm 31.12.1899 und die Zahlen hinter dem Komma die Millisekunden ab Mitternacht...
Daran halte ich mich immer, und mit Formatdatetime kann ich halt entsprechend leicht in jeder beliebigen Form ein Datum oder eine Zeit ausgeben. Nun ja, ich quäle mich auch mit Delphi 3 und 4 rum.... wo noch nix mit irgendwas ..Between is.
Gruß oldmax
Noch ist mein Rechner mir zu Diensten.... ansonsten habe ich die Macht ihn zu vernichten !
  Mit Zitat antworten Zitat
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Countdown der auf Now Zeit zurück greift

  Alt 7. Dez 2006, 14:37
Naja zumindest dint es (evtl.) der Übersichtlichkeit ... so kann man sehen was man in der Variabel speichrn wollte ..

Zitat von oldmax:
die Zahlen hinter dem Komma die Millisekunden ab Mitternacht...
naja ... eigentlich sind es doch imho KommaTage oder?
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat
DerDelphi

Registriert seit: 7. Dez 2006
7 Beiträge
 
Delphi 2005 Architect
 
#10

Re: Countdown der auf Now Zeit zurück greift

  Alt 15. Jan 2007, 16:45
Also ich habe auch ein ZeitProblem ( Wer hat das nicht )

Ich fülle beide edit Boxen im Format '16.32.12' dann die Berechnung : (Ich geh von 2sek unterschied aus) Das Ergebnis benötige ich Minuten

zeit:=MinuteSpan(strtotime(edit4.text),strtotime(e dit3.text));
zeit:=0,033333333333333 Periode
Berechnung stimmt also

nur beim anzeigen :
edit1.text:=FormatDateTime('hh:nn:ss',zeit );//Aktuelle Zeit;
oder
edit1.Text:=timetostr(zeit);

bekomme ich als Ergebnis 48 oder 4800 oder das Format '00:48:00' raus.
Ich habe absolut keine Ahnung warum ??
  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 14:27 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