Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Anzahl Sekunden seit 1.3.2000 - hin und zurück (https://www.delphipraxis.net/148910-anzahl-sekunden-seit-1-3-2000-hin-und-zurueck.html)

FBrust 10. Mär 2010 19:14


Anzahl Sekunden seit 1.3.2000 - hin und zurück
 
Hallo,

ich arbeite an einer Programmierung, für die auch RFID-Scanner benötigt werden. Diese erfassen nur die Nummer des RFID-Chips und Datum/Uhrzeit des Lesevorgangs.

Um den aktuellen Datums- und Zeitwert auszulesen und ihn ggf. zu korrieren, gibt es folgenden Wert, der sich über die Programmierschnittstelle auslesen lässt:

Zitat:

pDateTime As Long - Date and Time of the clock in the Scanner. Ellapsed seconds since March 1st 2000.
Die Hilfedatei bezieht sich auf Visual Basic, daher das "As Long", ich vermute mal, dass das in Delphi einem LongInt-Wert entspricht.
Ich habe also einen LongInt-Wert, den ich irgendwie in einen TDatetime-Wert umwandeln müsste, habe aber derzeit keine Idee, wie. Die UnixToDateTime-Funktio aus DateUtils hat ja den 1.1.1970 als Referenzdatum.

Gibts da was ähnliches mit "variablem" Referenzdatum?

Um Datum und Uhrzeit im Scanner zu setzen, kann ich ja mit SecondsBetween arbeiten, nur beim Umwandeln haperts.

Hat vielleicht jemand eine Idee?


Gruß
Frank

Namenloser 10. Mär 2010 19:48

Re: Anzahl Sekunden seit 1.3.2000 - hin und zurück
 
Die Schweizer haben da was, das sich recht leicht anpassen lassen sollte.

Oder du verwendest doch UnixToDateTime und addierst/subtrahierst jeweils vorher die Differenz zwischen den beiten Referenzdaten.

Reinhardtinho 10. Mär 2010 19:49

Re: Anzahl Sekunden seit 1.3.2000 - hin und zurück
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  scanTime : TDateTime;
  seconds : Integer;
begin
  seconds := 310000000;
  scanTime := StrToDatetime('01.03.2000') + seconds / SecsPerday;
  ShowMessage(DateToStr(scanTime));
end;

Klaus01 10. Mär 2010 20:40

Re: Anzahl Sekunden seit 1.3.2000 - hin und zurück
 
Guten Abend,

zu erwähnen wäre noch Delphi-Referenz durchsuchensecondsbetween aud den DateUtils.

Grüße
Klaus

Sir Rufo 10. Mär 2010 22:48

Re: Anzahl Sekunden seit 1.3.2000 - hin und zurück
 
Delphi-Quellcode:
IncSecond( EncodeDate( 2000, 3, 1 ), DerWertAusDerSchnittstelle )

FBrust 11. Mär 2010 19:32

Re: Anzahl Sekunden seit 1.3.2000 - hin und zurück
 
Hallo,

danke für die Antworten.

Ich hab den Code von Reinhardinho übernommen, der funktioniert prächtig.


@SirRufo: Was macht die Funktion "IncSeconds"? Meine Delphi-Hilfe schweigt sich hierzu leider aus :(


Gruß
Frank

Wolfgang Mix 11. Mär 2010 19:56

Re: Anzahl Sekunden seit 1.3.2000 - hin und zurück
 
Guckst du hier

Sir Rufo 11. Mär 2010 20:56

Re: Anzahl Sekunden seit 1.3.2000 - hin und zurück
 
Zitat:

Zitat von FBrust
Hallo,

danke für die Antworten.

Ich hab den Code von Reinhardinho übernommen, der funktioniert prächtig.


@SirRufo: Was macht die Funktion "IncSeconds"? Meine Delphi-Hilfe schweigt sich hierzu leider aus :(


Gruß
Frank

Sorry, wie Wolfgang schon korrekt verlinkt hat, heißt der Befehl Delphi-Referenz durchsuchenIncSecond

Der Code von Reihnardino berechnet das ein wenig "durch die Brust ins Auge" - geht, ist aber etwas umständlich und birgt auch evtl. eine gewisse Unschärfe durch das Dividieren.

Mein Code macht genau das, was der Hersteller da vorgibt:

"Addiere zum Datum 01.03.2000 die Sekunden hinzu"


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:13 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