Seite 1 von 1

Zeitberechnungen

Verfasst: 18.11.2017 00:44
von wie_jetzt?
Hallo Leute,

kann das sein, dass die Zeitberechnungsfunktionen im aktuellen PB (5.61) nur bis 2036 funktionieren und darüber hinausgehende Datumsberechnungen nicht mehr korrekt arbeiten?

Meine Schaltjahrberechnung

Code: Alles auswählen

For i = 2020 To 2100 Step 4
  Debug DayOfYear(Date(i,12,31,0,0,0))-365
Next
errechnet nur bis 2036 das Ergenis 1 für Schaltjahr, für spätere Schaltjahre den Wert -365 (weil DayOfYear nicht mehr korrekt funzt)

Re: Zeitberechnungen

Verfasst: 18.11.2017 00:47
von Bisonte
Ja. Da intern mit Longs berechnet wird, ist 2037 Schluss.

Re: Zeitberechnungen

Verfasst: 18.11.2017 02:09
von mk-soft
Unix Time Format...

Gibt aber ein paar Lösungen im Forum. Must mal suchen nach

Date64, DateX, DateQ, etc

Link: http://www.purebasic.fr/english/viewtop ... 12&t=68991

Re: Zeitberechnungen

Verfasst: 18.11.2017 10:41
von wie_jetzt?
Hallo Allerseits!

Ja, wenn das so seine Richtigkeit hat, ist ja gut. Ich habe nur versucht, mein Proggi auf "unsinnige" Usereingaben zu testen und "nach 2036" ist's regelmäßig abgeschmiert. Ich gehe davon aus, dass es in 20 jahren eh' nicht mehr auf Windows(soundsoviel) laufen wird, also kann ich die Usereingaben auch auf 2037 begrenzen und gut ist.

Danke für die Infos

Re: Zeitberechnungen

Verfasst: 18.11.2017 13:56
von juergenkulow

Code: Alles auswählen

; Date() Anzahl der Sekunden zwischen dem 01.01.1970 00:00:00 Uhr und der aktuellen Zeit
; vergleiche https://de.wikipedia.org/wiki/Schaltsekunde und https://de.wikipedia.org/wiki/Sommerzeit
Debug Date(1970, 1, 1, 0, 0, 2) ; 2
Debug Date(2012, 6,30,23,59,59) ;1341100799
Debug Date(2012, 6,30,23,59,60) ;-1  Schaltsekunde 
Debug Date(2012, 7, 1, 0, 0, 0) ;1341100800
Debug Date(2017, 3,26, 1,59,59) ;1490493599
Debug Date(2017, 3,26, 2, 0, 1) ;1490493601 Umstellung auf Sommerzeit am 26. März 2017 von 2 auf 3 Uhr. Diese Sekunde gab es nicht. 
Debug Date(2017, 3,26, 3, 0, 0) ;1490497200
Debug Date(2017,10,29,2, 0, 1) ; 1509242401 Diese Sekunde gab es 2 mal. Wie wird 2A von 2B Uhr unterschieden? 
Debug Date(2017,10,29,2,59,59) ; 1509245999 Umstellung auf Winterzeit 29. Oktober 2017 
Debug Date(2017,10,29,3, 0, 0) ;1509246000  
Debug Date(2017,10,29,4, 0, 0) ;1509249600
Debug Date(2038, 1,19,3,14, 7) ;2147483647 #MaxLONG
Debug Date(2038, 1,19,3,14, 8) ;-1 Alle Programmierer weltweit werden geweckt. 
; Kann QualitätsSoftware CalendarGadget, alle Date-Funktionen, DirectoryEntryDate, FTPDirectoryEntryDate, GetFileDate, SetFileDate verwenden?