AGB  ·  Datenschutz  ·  Impressum  







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

Datum und Zeit minus Jetzt gleich Differenz

Ein Thema von Teklab · begonnen am 21. Nov 2004 · letzter Beitrag vom 24. Nov 2004
Antwort Antwort
Teklab

Registriert seit: 28. Apr 2004
Ort: Stralsund
58 Beiträge
 
#1

Datum und Zeit minus Jetzt gleich Differenz

  Alt 21. Nov 2004, 02:20
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.
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#2

Re: Datum und Zeit minus Jetzt gleich Differenz

  Alt 21. Nov 2004, 02:33
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


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#3

Re: Datum und Zeit minus Jetzt gleich Differenz

  Alt 21. Nov 2004, 02:43
Zitat von Teklab:
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?
Nur ein Beispiel!!!
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;
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat
Teklab

Registriert seit: 28. Apr 2004
Ort: Stralsund
58 Beiträge
 
#4

Re: Datum und Zeit minus Jetzt gleich Differenz

  Alt 21. Nov 2004, 18:22
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 = 'onlinethen 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?????
  Mit Zitat antworten Zitat
Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#5

Re: Datum und Zeit minus Jetzt gleich Differenz

  Alt 21. Nov 2004, 22:07
Zitat von Teklab:
ich hole mir die 2004, 12, 12, 0, 0, 0, 0 aus der Datenbank als string
Warum speicherst du das Datum nicht als Datum in der Datenbank?
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat
Teklab

Registriert seit: 28. Apr 2004
Ort: Stralsund
58 Beiträge
 
#6

Re: Datum und Zeit minus Jetzt gleich Differenz

  Alt 22. Nov 2004, 13:04
Ja aber wie bekomme ich das denn in EncodeDateTime(....) rein?
ich bin zu dumm
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#7

Re: Datum und Zeit minus Jetzt gleich Differenz

  Alt 22. Nov 2004, 14:45
Hi!

Schon mal in der OH nach EncodeDateTime geschaut?

Ciao Frederic

P.S.: Falls er Strings will: Inttostr und + zum Verknüpfen.
Frederic Kerber
  Mit Zitat antworten Zitat
DennisHB

Registriert seit: 25. Aug 2003
Ort: Bremen
58 Beiträge
 
Delphi 6 Personal
 
#8

Re: Datum und Zeit minus Jetzt gleich Differenz

  Alt 22. Nov 2004, 22:12
Delphi-Quellcode:
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;
so sollte es gehen...
benutz das ganze für ein Tool zu nem BrowserGame

gruss Dennis
  Mit Zitat antworten Zitat
Teklab

Registriert seit: 28. Apr 2004
Ort: Stralsund
58 Beiträge
 
#9

Re: Datum und Zeit minus Jetzt gleich Differenz

  Alt 24. Nov 2004, 17:57
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
  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 23:09 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