AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Zeitberechnung für Parkscheinautomat....??!!
Thema durchsuchen
Ansicht
Themen-Optionen

Zeitberechnung für Parkscheinautomat....??!!

Ein Thema von Sonne · begonnen am 25. Mai 2007 · letzter Beitrag vom 30. Mai 2007
Antwort Antwort
Seite 2 von 2     12   
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.767 Beiträge
 
Delphi 10.4 Sydney
 
#11

Re: Zeitberechnung für Parkscheinautomat....??!!

  Alt 25. Mai 2007, 19:03
Nun. ich weiß nicht ob ihr das dürft, aber
in den DateUtils gibt es eine Funktion Namens minutesBetween.
Diese gibt Dir die Anzahl der Minuten zwischen zwei Daten zurück, wie der Name schon sagt.

Die Stunden erhälts Du wenn Du das Ergebnis div 60 nimmst.
Die restlichen Minuten wenn Du das Ergebnis mod 60 nimmst.

Wenn Ergebnis mod 60 > 0 dann ist eine weitere Stunde angebrochen
und der Stundenwert muß um eins erhöht werden.

Zu MinutesBetween mal in der Delphihilfe nachschlagen.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Dunkel
Dunkel

Registriert seit: 26. Mär 2007
Ort: Klingenstadt
541 Beiträge
 
Delphi 2007 Enterprise
 
#12

Re: Zeitberechnung für Parkscheinautomat....??!!

  Alt 25. Mai 2007, 19:15
Zitat von DeddyH:
Zitat:
Floor & Ceil gibt es auch in Delphi.
Seit welcher Version denn? In Delphi 5 gab es sie jedenfalls nicht.
Delphi 7 kennt die auf jeden Fall, ich bin mir jetzt nicht sicher, ob die auch schon in Delphi 6 vorhanden waren; MATH einbinden nicht vergessen.
Es ist zu wahr um schön zu sein...
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#13

Re: Zeitberechnung für Parkscheinautomat....??!!

  Alt 25. Mai 2007, 20:46
Mal kurz zurück zum Thema: wenn ich die Differenz zwischen 2 TDateTime (die ja faktisch Double sind) ermittle, habe ich die Differenz in Tagen als Bruchzahl. Nun müsste diese doch nur noch mit "der Anzahl der Stunden eines Tages" multipliziert werden (dabei die erste Freistunde nicht vergessen) und fertig ist der Lack, oder denke ich mal wieder zu simpel? Der Rest ist lediglich eine Frage der Genauigkeit, d.h. es ist die Frage zu klären, wann eine Stunde als angebrochen gilt (nach einer Minute, Sekunde, Millisekunde?)
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
TheWedler

Registriert seit: 30. Mai 2007
1 Beiträge
 
Delphi 2005 Personal
 
#14

Parkscheinautomatennot!!

  Alt 30. Mai 2007, 17:08
Hallo!

Vll hat der eine oder andere schon den Parkscheinbeitrag von Sonne und mir gelesen. Leider konnten wir mit den Antworten nicht viel anfangen da wir wirklich absolute Beginner sind. Sonne, ich und weitere 50 Schüler müssen das Programm morgen abgeben und KEINER hat die verlangte Version. Daher meine Bitte an einen "ders Kann" HILFE!!! so unverschämt wie es klingen mag aber wir bräuchten den kompletten Quelltext für die procedur.

LG verzweifelter Tim
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.767 Beiträge
 
Delphi 10.4 Sydney
 
#15

Re: Zeitberechnung für Parkscheinautomat....??!!

  Alt 30. Mai 2007, 17:20
Jetzt mal im Ernst,

in dem Beitrag steht, wie man die Zeit zwischen zwei Zeitpunkten ermittelt.
Davon eine Stunde abzuziehen dürfte auch nicht so schwer sein.

Ein Editfeld in dem man die EinfahrZeit in das Parkhaus einträgt, könnt Ihr aber schon auf die Form packen?
Oder amcht zwei Editfelder eines für die Stunde und eine für die Minute.
Um aus dem Edit.text eine Zeit zu bekommen, dazu gibt es Funktion encodeTime (aus der Unit SysUitls).
Dazu ist sogar ein Beispiel in der Hilfe vorhanden.

Um die Funktion encodeTime zu nutzen müßt Ihr noch den Edit.text in einen Zahl umwandeln.
Dazu nimmt man die Funktion StrToInt.

Um die aktuelle Zeit zu bekommen gibt es den Befehl now.

So am besten noch einmal alle Beiträge durchlesen und mal loslegen.

Viel Glück.
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#16

Re: Zeitberechnung für Parkscheinautomat....??!!

  Alt 30. Mai 2007, 18:25
Also, ich habe das Programm gerade mal erstellt (war ja noch einfacher, als ich zuerst dachte). Wenn mir die Damen und Herren Schüler hier vor allen anderen versprechen, dass sie bis zum Wochenende fleißig die Hilfe wälzen und mir dann erklären, was ich da eigentlich tue, stelle ich den Source hier rein. Deal?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#17

Re: Zeitberechnung für Parkscheinautomat....??!!

  Alt 30. Mai 2007, 20:02
OK, da keine Antwort mehr kam, nehme ich an, der Deal ist geplatzt . Ich stelle mal meine Lösung zur Diskussion, falls wer Interesse daran hat (weil sie so schön klein ist, gleich die ganze Unit):
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    Label2: TLabel;
    Label3: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
    Startzeit: TDateTime;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

const Stundenpreis = 0.7;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Randomize;
  Startzeit := now - Random(2) - Random;
  Label1.Caption := Format('Einfahrt: %s Uhr',[FormatDateTime('dd.MM.yyyy hh:mm',Startzeit)]);
end;

procedure TForm1.Button1Click(Sender: TObject);
var Ende: TDateTime;
    Preis: double;
begin
  Ende := now;
  Label2.Caption := Format('Ausfahrt: %s Uhr',[FormatDateTime('dd.MM.yyyy hh:mm',Ende)]);
  Preis := trunc((Ende - Startzeit) * 24) * Stundenpreis;
  Label3.Caption := Format('Zu zahlen: %.2f €',[Preis]);
(*  das ginge auch noch etwas kürzer unter Einsparung der Variablen "Preis":
  Ende := now;
  Label2.Caption := Format('Ausfahrt: %s Uhr',[FormatDateTime('dd.MM.yyyy hh:mm',Ende)]);
  Label3.Caption := Format('Zu zahlen: %.2f €',[trunc((Ende - Startzeit) * 24) * Stundenpreis]); *)

end;

end.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 13:32 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