Seite 1 von 1

Date-Maximum liefert bereits -1

Verfasst: 14.07.2013 18:45
von Sicro
Weiß jetzt nicht, ob ich das als Bug bewerten soll oder der Text in der Hilfe nicht stimmt. Laut anderen Beschreibungen zu Unix Timestamp wird aber ebenfalls 19.01.2038 03:14:07 als Maximum beschrieben.

Code: Alles auswählen

Date = Date(2038, 1, 19, 3, 14, 7) ; 19.01.2038, 03:14:07
Debug Date ; = -1

Date = ParseDate("%dd.%mm.%yyyy, %hh:%ii:%ss", "19.01.2038, 03:14:07")
Debug Date ; = -1

Re: Date-Maximum liefert bereits -1

Verfasst: 14.07.2013 19:32
von Chimorin

Code: Alles auswählen

http://de.wikipedia.org/wiki/Jahr-2038-Problem
Hast du, denke ich, auch schon gesehen.

Bestätigt, ist aber kein Bug, eher ein Feature ;)

Re: Date-Maximum liefert bereits -1

Verfasst: 14.07.2013 20:04
von Sicro
Ja, ist mir bekannt, aber ich bin eine Sekunde unter dem Überlauf :twisted:

Und mit Umwegen geht es doch:

Code: Alles auswählen

Date = Date(2038, 1, 19, 3, 14, 7)
Debug Date ;= -1

; Ok, nun anders:

Date = Date(2038, 1, 18, 23, 59, 59)
Date = AddDate(Date, #PB_Date_Second, 1)  ;= 19.01.2038 0:00:00
Date = AddDate(Date, #PB_Date_Hour, 3)    ;= 19.01.2038 3:00:00
Date = AddDate(Date, #PB_Date_Minute, 14) ;= 19.01.2038 3:14:00
Date = AddDate(Date, #PB_Date_Second, 7)  ;= 19.01.2038 3:14:07
Debug Date ; liefert diesmal keine "-1" entspricht aber "Date(2038, 1, 19, 3, 14, 7)"

; ========================================

Date = Date(2038, 1, 19, 0, 0, 0)
Debug Date ;= -1

; Ok, nun anders:

Date = Date(2038, 1, 18, 23, 59, 59)
Date = AddDate(Date, #PB_Date_Second, 1)
Debug Date ; liefert diesmal keine "-1" entspricht aber "Date(2038, 1, 19, 0, 0, 0)"

Re: Date-Maximum liefert bereits -1

Verfasst: 16.07.2013 20:40
von Sicro
Also, ich sehe das als Bug, wenn ihr das Gleiche bei euch reproduzieren könnt.

Re: Date-Maximum liefert bereits -1

Verfasst: 17.07.2013 12:43
von bobobo
Ist für mich eher ne Nickeligkeit und eine Ungenauigkeit in der Doku.

das 20138erProblem bleibt auf jeden Fall, auch wenn der Überlauf bei PB
schon um 0 Uhr stattfindet.

Re: Date-Maximum liefert bereits -1

Verfasst: 18.07.2013 11:43
von KatSeiko
Durch die 64-Bit-Umstellung kann der POSIX-Zeitstempel 292 Milliarden Jahre zuverlässig arbeiten, ohne dass es zu einem Überlauf kommt.
Habt ihr das Ganze mal in der 64bit-Version von PBasic getestet?

Re: Date-Maximum liefert bereits -1

Verfasst: 18.07.2013 18:42
von Sicro
bobobo hat geschrieben:das 20138erProblem bleibt auf jeden Fall, auch wenn der Überlauf bei PB
schon um 0 Uhr stattfindet.
Der Überlauf muss intern bei der Funktion "Date()" stattfinden, denn mit AddDate() kommt noch kein Überlauf, wie du meinem letztem Code entnehmen kannst.
Also, ok finde ich das nicht. Date() sollte auch die Werte unterstützen, die AddDate() unterstützt.
KatSeiko hat geschrieben:Habt ihr das Ganze mal in der 64bit-Version von PBasic getestet?
Macht kein Unterschied.

Kann den Code mal bitte einer mit der neusten Beta-Version testen?

Re: Date-Maximum liefert bereits -1

Verfasst: 18.07.2013 20:35
von bobobo
ja klar .. nur date(..) zickt rum.

übigens auch in PB 5.20 b6 32bit

da gehört die Doku dann auch angepasst. :twisted:

Re: Date-Maximum liefert bereits -1

Verfasst: 21.06.2014 23:04
von Sicro
Ich war gerade spontan im englischem Forum und habe mir die neueren Bugs mal durchgesehen.
Dabei ist mir aufgefallen, dass Regenduft seit einer Weile dort eine Bug-Meldung diesbezüglich veröffentlicht und Fred diesen Bug als behoben markiert hat:
http://www.purebasic.fr/english/viewtop ... =4&t=58895
Ich hoffe, dieser Fix betrifft die gesamte Date-Library.

Vielen Dank an Regenduft fürs Melden im englischem Forum - und ans Team natürlich fürs Fixen.
Wenigstens ihr habt dieses Verhalten auch als Bug gesehen.