Zeit einbeziehen in Programm

Für Fragen von Einsteigern und Programmieranfängern...
qwertzp
Beiträge: 50
Registriert: Do 28. Jan 2010, 13:48
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Zeit einbeziehen in Programm

Beitrag von qwertzp »

Könnt ihr mir vielleicht helfen, wie man macht man es, dass die Ausgabe eines Programms in Abhängigkeit der aktuellen Zeit erfolgt?

Lollo67
Beiträge: 69
Registriert: Mo 25. Jan 2010, 23:07

Re: Zeit einbeziehen in Programm

Beitrag von Lollo67 »

Meinst Du das zum Beispiel? :roll:
Aktuelle Zeit ermitteln und Anzeigen mit TimeToStr(Now)
Beispiel in der StatusBar:
StatusBar1.Panels.Items[0].Text:=' Zeit: '+TimeToStr(Now);

Geht auch mit aktuellem Datum...
Beispiel:
StatusBar1.Panels.Items[0].Text:=' Datum: '+DateToStr(Now);

qwertzp
Beiträge: 50
Registriert: Do 28. Jan 2010, 13:48
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Zeit einbeziehen in Programm

Beitrag von qwertzp »

Ja etwa so: 12:00 Ausgabe: x 13:00 Ausgabe: y Also nur ein Beispiel, ich werde dann schon etwas sinnvolles ausgeben

qwertzp
Beiträge: 50
Registriert: Do 28. Jan 2010, 13:48
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Zeit einbeziehen in Programm

Beitrag von qwertzp »

So ich hab nochne Frage, der Wert den TimeTosStr(now) ausgibt, ist ein string, ich möchte aber die Differenz einer Zeit zur now-Zeit berechnen lassen, ist das überhaupt möglich?

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: Zeit einbeziehen in Programm

Beitrag von Euklid »

Du kannst Zeiten, die nicht als String abgespeichert sind, direkt voneinander abziehen.

qwertzp
Beiträge: 50
Registriert: Do 28. Jan 2010, 13:48
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Zeit einbeziehen in Programm

Beitrag von qwertzp »

Schon aber wie bekomme ich die aktuelle Zeit nicht als String?

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: Zeit einbeziehen in Programm

Beitrag von Euklid »

Durch eine Variable vom Typ TDateTime .

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Zeit einbeziehen in Programm

Beitrag von pluto »

Es gibt auch noch FormatDateTime... Damit kannst du die Zeit Formatiert ausgeben... Das Funktioniert so ähnlich wie das Format, für Strings.
MFG
Michael Springwald

qwertzp
Beiträge: 50
Registriert: Do 28. Jan 2010, 13:48
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Zeit einbeziehen in Programm

Beitrag von qwertzp »

Kennt da jemand gerade ein Beispiel? Vielen Dank für die bereits geleistete Hilfe?

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Zeit einbeziehen in Programm

Beitrag von pluto »

Ungetestet: Now-Now2
Wobei Now2 von TTime sein sollte. Intern ist TTime ein Double. Daher sollte das Funktionieren.
MFG
Michael Springwald

Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Zeit einbeziehen in Programm

Beitrag von Socke »

Ein paar Basics zur Zeit (wenn etwas nicht klar ist, empfehle ich ein Delphi/Object-Pascal Tutorial):
Zeit wird in TDateTime gespeichert; Das ist ein Fließkomma-Wert (Double), bei dem der Wert vor dem Komma die Tage seit dem 30.12.1899, der Wert nach dem Komma steht für die Tageszeit (bspw. 12:54 Uhr).

Zur Umwandlung gibt es einige Funktionen in der [url=http://lazarus-ccr.sourceforge.net/docs/rtl/dateutils/index-5.html]Unit dateutils[url]. Den aktuellen Wert (Datum und Zeit) erhältst du mit Now();
Da TDateTime ein Fließkomma-Wert ist, kannst du damit auch ganz einfach Rechnen.

Code: Alles auswählen

var d1, d2, d3: TDateTime;
begin
  d1 := Now; // Heute
  d2 := d1 + 1; // morgen, selbe Uhrzeit
  d1 := Trunc(Now); // heute, 00:00 Uhr
  d2 := d1 + 0.25; // heute, 00:15 Uhr; 0.25 entsprechen also 15 Minuten/einer Viertelstunde
  // natürlich geht auch:
  d1 := Today; // Heute, 00:00 Uhr; entspricht Trunc(Now)
  d2 := Tomorrow; // Morgen, 00:00 Uhr; entspricht Trunc(Now)+1
  d3 := d2 - d1; // Zeit zwischen d2 und d1; in diesem Falle genau 1  
end;
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

qwertzp
Beiträge: 50
Registriert: Do 28. Jan 2010, 13:48
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Zeit einbeziehen in Programm

Beitrag von qwertzp »

Vielen Dank, jetzt ist es mir klar!

Hitman
Beiträge: 512
Registriert: Mo 25. Aug 2008, 18:17
OS, Lazarus, FPC: ArchLinux x86, WinVista x86-64, Lazarus 0.9.29, FPC 2.4.1
CPU-Target: x86
Wohnort: Chemnitz

Re: Zeit einbeziehen in Programm

Beitrag von Hitman »

Socke hat geschrieben:

Code: Alles auswählen

d2 := d1 + 0.25; // heute, 00:15 Uhr; 0.25 entsprechen also 15 Minuten/einer Viertelstunde
Vorsicht, die Nachkommastelle ist der Bruchteil des jeweiligen Tages, nicht einer einzelnen Stunde. Also wäre das eher 6:00 Uhr "heute".

qwertzp
Beiträge: 50
Registriert: Do 28. Jan 2010, 13:48
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Zeit einbeziehen in Programm

Beitrag von qwertzp »

Ich hab eine Frage das Zeug brauch ich für Abfahrtszeiten für Busse, z.B. 06:34, kann man irgendwie machen, dass immer das nächste 6:34 gemeint ist?

qwertzp
Beiträge: 50
Registriert: Do 28. Jan 2010, 13:48
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Zeit einbeziehen in Programm

Beitrag von qwertzp »

Sorry hab wiedermal nichts überlegt, hat sich erledigt!

Antworten