AGB  ·  Datenschutz  ·  Impressum  







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

DateUtils Problem

Ein Thema von mOzZzI · begonnen am 6. Jun 2006 · letzter Beitrag vom 7. Jun 2006
Antwort Antwort
Benutzerbild von mOzZzI
mOzZzI

Registriert seit: 11. Nov 2005
Ort: Bamberg
320 Beiträge
 
Delphi 2006 Professional
 
#1

DateUtils Problem

  Alt 6. Jun 2006, 21:49
Hallo Freunde,
ich habe ein Problem mit der Unit DateUtils.
Ich bin gerade dabei einen Wecker zu basteln, und versuche einen Eintrag in einer ListView zu erstellen, alles klappt auch bis jetzt, leider klappt mein SubItem der Listview mit der Caption "Verbleibende Zeit"
nicht. Hier erstmal ein wenig Code:

Delphi-Quellcode:
procedure TForm1.AddEintrag;
var LI: TListItem;
var Datejetzt: TTime;
var Datelist: TTime;
var resthours: Integer;
var restminutes: Integer;
var restseconds: Integer;
begin
  Datejetzt:=Time;
  Datelist:=StrToTime(Edit1.Text);
  resthours:= HoursBetween(datejetzt,datelist);
  restminutes:= MinutesBetween(datejetzt, datelist);
  restseconds:= SecondsBetween(datejetzt, datelist);
  LI := ListView1.Items.Insert(0);
  LI.Caption := RichEdit2.Text;
  LI.SubItems.Add(RichEdit1.Text);
  LI.SubItems.Add(Edit1.Text);
  LI.SubItems.Add(DateToSTr(DateTimePicker1.Time));
  LI.SubItems.Add(inttostr(resthours)+':'+inttostr(restminutes)+':'+inttostr(restseconds));
end;
Bloß irgendwie zeigt er mir die verücktesten Uhrzeiten an

Grüße Philipp

[Edit]Bsp:
Jetzige Uhrzeit 22:51:30
Restzeit(was angezeigt wird): 22:1371:82280
--Mfg mozZzI--------------
Get & Test my ToolBar (550 KB)
Thread & Comments Here
------------------------------
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#2

Re: DateUtils Problem

  Alt 6. Jun 2006, 22:06
LI.SubItems.Add(DateToSTr(DateTimePicker1.Time)); Also aus einer Zeit soll mit Datumtostr was werden ?
LI.SubItems.Add(TimeToSTr(DateTimePicker1.Time)); wohl eher

Edit: OH ich glaube time ist vom type tdatetime

also
Timetostr und datetostring benutzen.

zu TDatetime und TTime und TDate das sind alles float werte d.h. der wert vor dem komma gibt das datum an der dahinter die zeit
Code:
1,2
| |
| +Zeit
+Datum
Auch ist es manchmal hilfreich mit Zeiten als Zahlen zu rechnen

Edit2: hier noch einige zeit functionen aus meinen stundenplan
Delphi-Quellcode:
function isTimeInTimes(t, von, bis: TTime): boolean;
begin
  result:= ( (von < t) and (t < bis) );
end;

function Zeitbis(jetzt, dann: TTime): TTime;
begin
  result:= dann - jetzt;
end;

function timetominutes(t: TTime): integer;
begin
  result:= Hourof(t)*60+MinuteOf(t);
end;

function timetoseconds(t: TTime): integer;
begin
  result:= (Hourof(t)*60+MinuteOf(t))*60 + SecondOf(t);
end;
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#3

Re: DateUtils Problem

  Alt 6. Jun 2006, 22:11
Hallo Philipp,

SecondsBetween liefert die Zeitspanne zwischen zwei Zeitpunkten in Sekunden, nicht den Sekunden-Anteil dieser Zeitspanne.

Versuche es einmal mit

LI.SubItems.Add(TimeToStr(DateList - DateJetzt)); Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von mOzZzI
mOzZzI

Registriert seit: 11. Nov 2005
Ort: Bamberg
320 Beiträge
 
Delphi 2006 Professional
 
#4

Re: DateUtils Problem

  Alt 6. Jun 2006, 22:25
Zitat von Hawkeye219:
Hallo Philipp,

SecondsBetween liefert die Zeitspanne zwischen zwei Zeitpunkten in Sekunden, nicht den Sekunden-Anteil dieser Zeitspanne.

Versuche es einmal mit

LI.SubItems.Add(TimeToStr(DateList - DateJetzt)); Gruß Hawkeye
Das hört sich sehr gut an, aber leider funzt das net so.
Wir haben jetz 23:23:00 so, wenn ich dann jetz einstell um 00:00:00 soll was passieren, dann wird als Restzeit 23:23:00 angezeigt, bloß warum ?
--Mfg mozZzI--------------
Get & Test my ToolBar (550 KB)
Thread & Comments Here
------------------------------
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#5

Re: DateUtils Problem

  Alt 6. Jun 2006, 22:28
00:00:00war wohl schon dann ist bald 24:00:00

Edit: 0,0= 00:00:00 0,99999~24:00:00
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
Benutzerbild von mOzZzI
mOzZzI

Registriert seit: 11. Nov 2005
Ort: Bamberg
320 Beiträge
 
Delphi 2006 Professional
 
#6

Re: DateUtils Problem

  Alt 6. Jun 2006, 22:29
Danke, geht!


Noch eine Frage:
Wie könnte man da jetz noch das Datum mit ins Spiel bringen?
Z-B.

am 07.06.2006 soll um 17:30 das gemacht werden...
wie krieg ich dann da die verbleibende Zeit raus?
--Mfg mozZzI--------------
Get & Test my ToolBar (550 KB)
Thread & Comments Here
------------------------------
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: DateUtils Problem

  Alt 7. Jun 2006, 06:22
Hallo Philipp,

in Beitrag #3 hat Hawkeye dir zwei Dinge gezeigt:

(1) Die Zeitspanne zwischen zwei Zeitpunkten kann in Delphi einfach durch Differenzbildung bestimmt werden:

(2) Auch wenn das Ergebnis eine Zeitspanne darstellt und keinen Zeitpunkt, kann für die Darstellung problemlos das übliche Zeitformat verwendet werden.

Delphi-Quellcode:
var
  sDiff: String;
  dtDiff, dtEvent: TDateTime;
begin
  dtDiff := dtEvent - Now;
  sDiff := TimeToStr(dtDiff);
end;
Dabei verwendet die Funktion TimeToStr() nur den Zeitanteil von dtDiff, welcher Frac(dtDiff) ist. Der Datumsanteil Trunc(dtDiff) kann nicht so einfach mit DateToStr() sichtbar gemacht werden, da hier eine andere Semantik vorliegt. Dieser Wert repräsentiert die Anzahl von ganzen Tagen zwischen zwei Zeitpunkten. Du kannst ihn z.B. als Kombination von Tagen und Wochen darstellen:

Delphi-Quellcode:
function DaysToWeeks(n: Integer): String;
var
  nDays, nWeeks: Word;
  bPast: Boolean;
  sWeeks, sDays: String;
begin
  bPast := n < 0;
  n := Abs(n);
  DivMod(n, 7, nWeeks, nDays);
  if n = 0 then Result := 'else
  begin
    sWeeks := IfThen(nWeeks = 0, '',
      IfThen(nWeeks = 1, '1 Woche ', Format('%d Wochen ', [nWeeks])));
    sDays := IfThen(nDays = 0, '',
      IfThen(nDays = 1, '1 Tag ', Format('%d Tage ', [nDays])));
    Result := IfThen(bPast, 'vor ', 'noch ') + sWeeks + sDays;
  end;
end;
Getippt und nicht getestet.

Grüße vom marabu

Edit: Jetzt schon ein wenig getestet...
  Mit Zitat antworten Zitat
Benutzerbild von mOzZzI
mOzZzI

Registriert seit: 11. Nov 2005
Ort: Bamberg
320 Beiträge
 
Delphi 2006 Professional
 
#8

Re: DateUtils Problem

  Alt 7. Jun 2006, 10:01
Also, ich habe jetz alleine ein bisschen weitergewerkelt,
und dass ist dabei herausgekommen:

Delphi-Quellcode:
  date:= DateToStr(DateTimePicker1.Time);
  uhrzeit:= EdtWeckHour.Text+':'+EdtWeckMinu.Text+':'+EdtWeckSecu.Text;
  datetime:=date+' '+uhrzeit;
  diff:= DateTimeToStr(now)-datetime; //hier ist noch der fehler
fehler:= Operator ist auf diesen OperandenTyp nocht anwendbar

Dabei will ich doch bloß das jetzige Datum und die jetzige Uhrzeit
07.06.2006 11:00:25
mit dem eingegeben Datum und der eingegeben Uhrzeit
08.06.2006 15:30:00
abziehen und dann die Differenz daraus soll diff sein.

Bloß geht das irgendwie nicht
--Mfg mozZzI--------------
Get & Test my ToolBar (550 KB)
Thread & Comments Here
------------------------------
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#9

Re: DateUtils Problem

  Alt 7. Jun 2006, 10:26
diff:= DateTimeToStr(now)-datetime; //hier ist noch der fehler DateTimeToStr(now) gibt das nicht einen string zurück ?
diff:= DateTimeToStr(now-strtodatetime(datetime)); so sollte es gehen
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  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 18: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