![]() |
Datum und Zeit minus Jetzt gleich Differenz
Halli hallo...
ich bin am verzweifeln. ich versuche nun schon seit ewigkeiten die differenz aus z.B. gestern und heute zu bekommen. Folgende Aufgabenstellung ich habe ein Programm in dem man was bauen kann. Der Bau sagen wir dauert 8Stunden. Und wird in einer Datenbank gespeichert als Datum u Zeit und einmal noch als Dauer. So wenn ich mich im Programm neu einlogge läd er die Daten und soll errechnen ob die Bauzeit schon um ist. Wäre das alles am selben Tag ist es kein Problem. Aber das dumme ist wenn ich um 11.11.2004 23:30:00 baue müsste es ja am 12.11.2004 07:30:00 fertig sein. Doch wie zeige ich die restlichen 15Minuten an, wenn ich mich um genau 07:15:00 einlogge? Ich habe schon einiges ausprobiert... Daysbetween und Hoursbetween variable := Time(now)-zeit; <--- macht er aber nur wenns am selben Tag startet und endet. Es muss doch etwas geben wo ich schreibe DatumUhrzeitHeute-DatumUhrzeitvonDatenBank gleich RestZeit(Stunden,Minuten,Sekunden); Ich habe auch schon die Forumsuche benutzt und wie gesagt mit der Zeit am selben Tag ist alles gut und schön....nur wenn noch das Datum mit ins Spiel kommt is es dumm. |
Re: Datum und Zeit minus Jetzt gleich Differenz
Hi!
Unter PHP kenne ich Timestamp, der einfach alle Sekunden ab dem 01.01.1970 glaube ich hochzählt. Da gibt es doch auch bestimmtwas von Ratiopharm ...äh... Delphi :wink: Ciao Frederic |
Re: Datum und Zeit minus Jetzt gleich Differenz
Zitat:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var BauBeginn, BauEnde: TDateTime; BauZeitInStunden: Integer; Jetzt: TDateTime; RestZeit: TTime; begin // Bauzeit beträgt 8 Stunden BauZeitInStunden := 8; // Der Bau beginnt am 11.11.2004 um 23:30:00 BauBeginn := EncodeDateTime(2004, 11, 11, 23, 30, 0, 0); // Bauende errechnen BauEnde := BauBeginn + EncodeTime(BauZeitInStunden, 0, 0, 0); // jetzige Zeit (anstelle von Now, zum Testen) 12.11.2004 07:15:00 Jetzt := EncodeDateTime(2004, 11, 12, 7, 15, 0, 0); // Restzeit errechnen RestZeit := BauEnde - Jetzt; // Restzeit anzeigen ShowMessage(TimeToStr(RestZeit)); end; |
Re: Datum und Zeit minus Jetzt gleich Differenz
Ok werd gleich mal ausprobieren wenns klappt mach ich 5 kreuze :)
??? er sagt mir Word und String sind inkompatibel... ich hole mir die 2004, 12, 12, 0, 0, 0, 0 aus der Datenbank als string *G* und wollte EncodeDateTime(lastlogin); schreiben aber das geht ned :( so hab jetzt das hier versucht
Delphi-Quellcode:
llog := (Zentrale.ZQuery1.FieldbyName('lastlogin').AsString);
online := (Zentrale.ZQuery1.FieldbyName('online').AsString); if online = 'online' then begin varj := llog[7]+llog[8]+llog[9]+llog[10]; varm := llog[4]+llog[5]; vart := llog[1]+llog[2]; varh := llog[12]+llog[13]; varmi := llog[15]+llog[16]; vars := llog[18]+llog[19]; varms := "0"; lastlogin := EncodeDateTime(varj, varm, vart, varh, varmi, vars, varms); die var* sind Strings und lastlogin ist ein TDateTime so nun mault das Programm rum das die var* keine Words sind.... ich habe wo was von "chr" gelesen, dass es damit gehen soll aber das sagt mir nichts. Wie bekomme ich die var Strings in Word????? |
Re: Datum und Zeit minus Jetzt gleich Differenz
Zitat:
|
Re: Datum und Zeit minus Jetzt gleich Differenz
Ja aber wie bekomme ich das denn in EncodeDateTime(....) rein?
ich bin zu dumm :) |
Re: Datum und Zeit minus Jetzt gleich Differenz
Hi!
Schon mal in der OH nach EncodeDateTime geschaut? Ciao Frederic P.S.: Falls er Strings will: Inttostr und + zum Verknüpfen. |
Re: Datum und Zeit minus Jetzt gleich Differenz
Delphi-Quellcode:
so sollte es gehen...
function DateTimeToMSecs (dt:TDateTime) : Comp;
begin result := TimeStampToMSecs( DateTimeToTimeStamp( dt ) ); end; function MSecsToDateTime (secs:comp) : TDateTime; begin result := TimeStampToDateTime( MSecsToTimeStamp( secs ) ); end; procedure BerechneBauFertig(BauGestartet : TDateTime); var bauFertigUm : TDateTime; verbleibendeZeit : comp; begin verbleibendeZeit := DateTimeToMSecs(now) - DateTimeToMSecs(BauGestartet); bauFertigUm := MSecsToDateTime(verbleibendeZeit ); end; benutz das ganze für ein Tool zu nem BrowserGame :) gruss Dennis |
Re: Datum und Zeit minus Jetzt gleich Differenz
Lol ich mache genau das gleich wie du nur halt mit Delphi.
So werds dann mal ausprobieren. Danke für die Hilfe. @fkerber Strings und Integer kenn ich aber Strings in Word war das Problem |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz