AGB  ·  Datenschutz  ·  Impressum  







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

Verdammt gute Kalenderfrage

Ein Thema von Wolfgang Mix · begonnen am 4. Jan 2017 · letzter Beitrag vom 6. Jan 2017
Antwort Antwort
Seite 2 von 2     12   
rokli

Registriert seit: 21. Mär 2009
Ort: Rödinghausen
301 Beiträge
 
Delphi 10.4 Sydney
 
#11

AW: Verdammt gute Kalenderfrage

  Alt 6. Jan 2017, 12:59
Linux zählt doch die Sekunden seit 1.1.1970. Kann man denn da überhaupt mit Zeiten davor rechnen?
Ich bin nicht ganz sicher, aber ich glaube schon!
Rolf
wenn nicht anders angegeben, schreibe ich zu D7, XE2 und MS SQL - ansonsten fragen Sie ihren Administrator oder einen Operator. Update 06/2020: Delphi 10.4 Sydney
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#12

AW: Verdammt gute Kalenderfrage

  Alt 6. Jan 2017, 13:04
Die Frage war nicht ganz ernst gemeint, Delphi fängt mit seiner Zeitrechnung ja auch erst am 30.12.1899 an, da müsste das Problem ja dann auch vorhanden sein und schon halt etwas früher auftreten
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#13

AW: Verdammt gute Kalenderfrage

  Alt 6. Jan 2017, 14:30
Das kommt drauf an.
Negative Werte gibt es ja nicht immer.

Delphi nutzt standardmäßig TDateTime, was intern die Zeit über einen TSystemTime holt. (Delphi-Referenz durchsuchenNow / MSDN-Library durchsuchenGetSystemTime)
TDateTime ist ein Double und da gibt es negative Werte.
TSystemTime ist ein Record aus Words und da kann man nur bis zum Jahr 0 runter, also ein Jahr, bevor der eine Typ angeblich geboren wurde.

Im negativen Bereich ist Delphi-Referenz durchsuchenTDateTime bissl "gemein", also bei Überschreitung der Grenze unbedingt die OH lesen!

Und nun zum Linux / Unix Timestamp, denn da könnte man den Wert (Sekunden) in einem Integer mit oder ohne Vorzeichen speichern (LongInt oder LongWord).
Da Linux im Jahre 2038 ein Problem bekommen soll, werden sie wohl meistens mit einem signed Integer rechnen und dann gibt es auch ein negatives davor.

2017-01-06 00:00:00 (1483660800)
2038-01-19 03:14:07 ($7FFFFFFF)
2106-02-07 06:28:15 ($FFFFFFFF)

Nur wie man das da mit den Schaltdekunden machen will ... Linux muß dann doch jede einzelne Schaltsekunde kennen und wenn dann mal jemand "unerwartet" daran was ändert....
Und bei der Umrechnung muß man dann auch noch alle Zeitverschiebungen einberechnen. Ich glaub mit einer extrem kranken mathematischen Formel läßt sich das nicht gut berechnen.

Delphi-Quellcode:
TSystemTime = record // 16 Byte (4 Integer)
  wYear: Word;
  wMonth: Word;
  wDayOfWeek: Word;
  wDay: Word;
  wHour: Word; // 0 bis 65.535 Uhr :lol:
  wMinute: Word;
  wSecond: Word;
  wMilliseconds: Word;
end;


// Ich hätte es ja eher so definiert, aber k.A. was sich der bei Microsoft damals dabei gedacht hat oder ob er nichts dachte, aber ganze Integer wären auch ein Grund.

TSystemTime = record // 10 Byte
  wYear: Word;
  wMonth: Byte;
  wDayOfWeek: Byte;
  wDay: Byte;
  wHour: Byte; // 0 bis 255 Uhr, aber halbe Bytes sind ja blöd
  wMinute: Byte;
  wSecond: Byte;
  wMilliseconds: Word;
end;
$2B or not $2B

Geändert von himitsu ( 6. Jan 2017 um 15:14 Uhr)
  Mit Zitat antworten Zitat
rokli

Registriert seit: 21. Mär 2009
Ort: Rödinghausen
301 Beiträge
 
Delphi 10.4 Sydney
 
#14

AW: Verdammt gute Kalenderfrage

  Alt 6. Jan 2017, 14:59
Die Frage war nicht ganz ernst gemeint, Delphi fängt mit seiner Zeitrechnung ja auch erst am 30.12.1899 an, da müsste das Problem ja dann auch vorhanden sein und schon halt etwas früher auftreten
Dessen war ich mir schon bewußt!
Rolf
wenn nicht anders angegeben, schreibe ich zu D7, XE2 und MS SQL - ansonsten fragen Sie ihren Administrator oder einen Operator. Update 06/2020: Delphi 10.4 Sydney
  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:53 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