Hallo
Ich hab ein Programm geschrieben, welches eigentlich stabil lief, bis am 1. Februar. Dann erschien folgender Fehler sowohl auf Mac als auch Windows:
File "H:\workspace\Sunrays\Sunrays\src\Gui2.py", line 953, in run
Frame_with_notebook = MainFrame(None, -1, "" )
File "H:\workspace\Sunrays\Sunrays\src\Gui2.py", line 206, in __init__
self.enddate = wx.DateTimeFromDMY(30, month = 12, year = 2040)
File "C:\Program Files\Python2.6\lib\site-packages\wx-2.8-msw-unicode\wx\_misc.py", line 4158, in DateTimeFromDMY
val = _misc_.new_DateTimeFromDMY(*args, **kwargs)
wx._core.PyAssertionError: C++ assertion "(0 < day) && (day <= GetNumberOfDays(month, year))" failed at ..\..\src\common\datetime.cpp(1466) in wxDateTime::Set(): Invalid date in wxDateTime::Set()
Die Codezeilen, welche den Fehler auslösen sind:
self.startdate = wx.DateTimeFromDMY(1, month = 1, year = 2000)
self.enddate = wx.DateTimeFromDMY(30, month = 12, year = 2040)
Sie setzen einfach ein Limit für das Kalender-Widget.
Ich kann mir nicht erklären, woher plötzlich der Fehler kommt. Sogar ältere Versionen des Programs, welche normal funktionerten, starten nicht mehr. Sowohl auf meinen Computern, als auch bei all meinen Beta-Testern.
Wenn ich bei meinem PC das Systemdatum auf ein Tag im Januar ändere, funktioniert das Programm wieder.
Irgendjemand eine Idee?
Freundliche Grüsse
Simon Bächler
Februar Bug?
Ich habe es jetzt nicht überprüft, aber ich meine mich zu erinnern, dass bei dieser Funktion die Monate ab 0 gezählt werden, womit 12 um eins zu groß wäre.sbaechler hat geschrieben: Die Codezeilen, welche den Fehler auslösen sind:
self.startdate = wx.DateTimeFromDMY(1, month = 1, year = 2000)
self.enddate = wx.DateTimeFromDMY(30, month = 12, year = 2040)
Leider zu spät, aber genau so ist es. Mit month=11 funktioniert es dann auch./me hat geschrieben:Ich habe es jetzt nicht überprüft, aber ich meine mich zu erinnern, dass bei dieser Funktion die Monate ab 0 gezählt werden, womit 12 um eins zu groß wäre.sbaechler hat geschrieben: Die Codezeilen, welche den Fehler auslösen sind:
self.startdate = wx.DateTimeFromDMY(1, month = 1, year = 2000)
self.enddate = wx.DateTimeFromDMY(30, month = 12, year = 2040)
MfG
HWK