AGB  ·  Datenschutz  ·  Impressum  







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

Timer viel zu ungenau?

Ein Thema von Lefko · begonnen am 4. Aug 2003 · letzter Beitrag vom 15. Aug 2003
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#21

Re: Timer viel zu ungenau?

  Alt 15. Aug 2003, 01:01
Ist doch ziemlich einfach. Neben der aktuellen Online Startzeit und der aktuellen Zeit die ja dann die abgelaufene Online Zeit darstellen hast du noch die letzten Kosten die aufgelaufen sind. Nun die aktuelle Onlinezeit in Minuten * die Kosten pro Minute auf den letzten gemessenen Moantsbetrag drauf addieren. Wenn der User Offline geht addierste die kompletten Kosten der aktuellen Onlinesession auf den letzen Monatswert drauf.

Gruß Hagen
  Mit Zitat antworten Zitat
Lefko

Registriert seit: 31. Jul 2003
359 Beiträge
 
Delphi 6 Enterprise
 
#22

Re: Timer viel zu ungenau?

  Alt 15. Aug 2003, 13:53
Zitat von negaH:
Ist doch ziemlich einfach. ... Wenn der User Offline geht addierste die kompletten Kosten der aktuellen Onlinesession auf den letzen Monatswert drauf.

Gruß Hagen
Ja, aber ich möchte, dass die Kosten jede Minute aktualisiert werden und nicht nur wenn der user off geht

ich hab s jetzt so gemacht, aber ob das so gut is? :

Delphi-Quellcode:
//Zeit- und Kostenberechnung
Onlinezeit := now - Startzeit;

//Heute
Label9.Caption := TimeToStr(Tageszeit + Onlinezeit);
//Monat
Label11.Caption := TimeToStr(Monatszeit + Onlinezeit);
//Jetzt
Label13.Caption := TimeToStr(Onlinezeit);

if copy(Label13.caption,7,2) = '00then //wenn 'ne neue minute beginnt
begin
 Label15.caption := FloatToStr(StrToFloat(Label15.caption) + StrToFloat(Satz) / 100);
 Label8.caption := FloatToStr(StrToFloat(Label8.caption) + StrToFloat(Satz) / 100);
 Label7.caption := FloatToStr(StrToFloat(Label7.caption) + StrToFloat(Satz) / 100);
end;
MfG Lefko.

[edit=Daniel B]Delphi-Tags korrigiert. Mfg, Daniel B[/edit]
Johannes
-=[Nennst du meinen Namen, bin ich schon nicht mehr da]=-
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#23

Re: Timer viel zu ungenau?

  Alt 15. Aug 2003, 14:27
Hi

deine ständige Umrechnungen mit StrToFloat() sind unschön:

Delphi-Quellcode:
begin
  KostenProTag := KostenProMinute / 1440;
  OnlineZeit := Now - Startzeit;
  OnlineKosten := OnlineZeit * KostenProTag;
  MonatsZeit := MonatsZeitVorOnlineStart + OnlineZeit;
  MonatsKosten := MonatsKostenVorOnlineStart + OnlineKosten;
  
  Label9.Caption := FormatDateTime('hh:nn:ss', OnlineZeit);
  Label11.Caption := FormatDateTime('dd Tage hh:nn:ss', MonatsZeit);

// aktuelle Kosten der aktuelle Onlinezeit
  Labelxx.Caption := FormatFloat('0.00#,## €', OnlineKosten);
// kumulierte Monatskosten
  Labelxy.Caption := FormatFloat('0.00#,## €', MonatsKosten);
.. usw. usw.
end;
Gruß Hagen
  Mit Zitat antworten Zitat
Lefko

Registriert seit: 31. Jul 2003
359 Beiträge
 
Delphi 6 Enterprise
 
#24

Re: Timer viel zu ungenau?

  Alt 15. Aug 2003, 21:30
Zitat von negaH:
Hi

deine ständige Umrechnungen mit StrToFloat() sind unschön:

Delphi-Quellcode:
begin
  KostenProTag := KostenProMinute / 1440;
  OnlineZeit := Now - Startzeit;
  OnlineKosten := OnlineZeit * KostenProTag;
  MonatsZeit := MonatsZeitVorOnlineStart + OnlineZeit;
  MonatsKosten := MonatsKostenVorOnlineStart + OnlineKosten;
  
  Label9.Caption := FormatDateTime('hh:nn:ss', OnlineZeit);
  Label11.Caption := FormatDateTime('dd Tage hh:nn:ss', MonatsZeit);

// aktuelle Kosten der aktuelle Onlinezeit
  Labelxx.Caption := FormatFloat('0.00#,## €', OnlineKosten);
// kumulierte Monatskosten
  Labelxy.Caption := FormatFloat('0.00#,## €', MonatsKosten);
.. usw. usw.
end;
Gruß Hagen
das mit dem kostenprotag versteh ich nich.....
Johannes
-=[Nennst du meinen Namen, bin ich schon nicht mehr da]=-
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#25

Re: Timer viel zu ungenau?

  Alt 15. Aug 2003, 21:44
Korrekt: KostenProTag := KostenProMinute * 1440 ist richtig.
Du arbeitest mit TDateTime. Ein TDateTime ist eine Fließkommazahl die im Ganzzahlteil der Zahl, also vor dem Komma die Tage angibt. Im Gebrochenen Teil der Zahl also Nachkommateil, werden die Bruchteile eines Tages angegeben. Nun (KostenProMinute * 1440) = KostenProTag, KostenProTag * Bruchteile eines Tages = Kosten. Somit sind die KostenProTag rechenkompatibel mit einem TDateTime. Man kann also direkt rechnen Kosten := (Now - StartDatumZeit) * KostenProTag. Vorteil bei der Sache ist das wenn man mehrere Tage und Stunden online ist obige Formel trotzdem richtig rechnet. So einfach

Probier mal
Delphi-Quellcode:
  KostenProTag := 0.10 * 1440; // 10 Cent pro Minute
  Kosten := (StrToDateTime('15.1.2003 18:34') - StrToDateTime('10.1.2003 09:12')) * KostenProTag.
Gruß Hagen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 00:06 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