def OnCalcByLMP(self, event): if (self.xfer_cal_date_to == LMP_FIELD): # we do this the "UNIX Way" -- all dates are converted into seconds # since midnight 1 Jan, 1970. # .GetDate().GetTicks() returns time at 5AM. The -18000 second # correction adjusts LMP to 12AM ??? NOT NEEDED # is it possible there is a BUG in the wxPython # Day Light Savings/Standard Time Calc? #LMP = self.lmp_cal.GetDate ().GetTicks () - 18000 # Standard Time Fix (?) self.lmp = self.lmp_cal.GetDate().GetTicks( ) # Correct for Day Light Saving Time today = wx.DateTime_Today().GetTicks() due = self.lmp + GESTATION gest = today - self.lmp self.ultrasound18_52 = self.lmp + US18_52 # ----------------- # FIXME: use gmDateInput in gmDateTimeInput.py lmp_txt = wx.DateTime() # FIXME? - change format of date (?) lmp_txt.SetTimeT(self.lmp) self.txt_lmp.SetValue(self.PurgeTime(lmp_txt)) # ----------------- gest_week = gest / WEEK gest_day = (gest % WEEK) / DAY if (gest_day == 1): days_label = _('day') else: days_label = _('days') if (gest_week == 1): weeks_label = _('week') else: weeks_label = _('weeks') # txtgest_str = "%s %s, %s %s" % (gest_week, weeks_label, gest_day, days_label) txtgest_str = str(gest_week) + " " + weeks_label + ", " + str( gest_day) + " " + days_label self.txtgest.SetValue(txtgest_str) # ----------------- edctxt = wx.DateTime() edctxt.SetTimeT(due) self.txtedc.SetValue(self.PurgeTime(edctxt)) # ----------------- self.ustxt = wx.DateTime() self.ustxt.SetTimeT(self.ultrasound18_52) self.txtdue.SetValue(self.PurgeTime(self.ustxt)) else: # set Ultrasound Date self.usdate = self.lmp_cal.GetDate().GetTicks() usdatetxt = wx.DateTime() # FIXME? - change format of date usdatetxt.SetTimeT(self.usdate) self.txtdate.SetValue(self.PurgeTime(usdatetxt)) # recalculate 'Rev EDC' if Ultrasound Scan Date is changed if (self.txtnewedc.GetValue() != ""): self.EvtText_calcnewedc(self)
def get_sheet_data(self): ids = '' states = '' for id in self.apply_ids: ids += "user_id='" + id + "' or " ids = ids[:-3] for state in self.states: states += "state='" + state + "' or " states = states[:-3] applies = FundApply.find(where="(" + ids + ")" + " and (" + states + ")") sheet_data = [] applies = sorted(applies, key=lambda key: key['date']) for apply in applies: item = [] try: dt = wx.DateTime( datetime.datetime.strptime(apply.date, '%Y年%m月%d日')) except ValueError: dt = wx.DateTime( datetime.datetime.strptime(apply.date, '%Y-%m-%d')) df = dt.Format('%Y-%m-%d') if self.dates['begin'] < df < self.dates['end']: item.append(apply.date) item.append(self.user_map[apply.user_id]) item.append(Compute.get(apply.money)) item.append(self.kinds[apply.kind]) item.append(apply.reason) item.append(apply.state) item.append(apply.persons) sheet_data.append(tuple(item)) return sheet_data
def Importation(self): DB = GestionDB.DB() req = "SELECT * FROM periodes_vacances WHERE IDperiode=%d" % self.IDperiode DB.ExecuterReq(req) donnees = DB.ResultatReq()[0] DB.Close() if len(donnees) == 0: return # Place la valeur dans le controle nom période self.SelectChoice(self.choice_nom, donnees[1]) # Place la valeur dans le controle annee self.text_annee.SetValue(str(donnees[2])) # Place la date de début dans le cdatePicker jour = int(donnees[3][8:10]) mois = int(donnees[3][5:7]) - 1 annee = int(donnees[3][:4]) date = wx.DateTime() date.Set(jour, mois, annee) self.datepicker_dateDebut.SetValue(date) # Place la date de fin dans le cdatePicker jour = int(donnees[4][8:10]) mois = int(donnees[4][5:7]) - 1 annee = int(donnees[4][:4]) date = wx.DateTime() date.Set(jour, mois, annee) self.datepicker_dateFin.SetValue(date)
def __prepare_calendar(self): # headings start_text_field = wx.StaticText(self, -1, "Start") end_text_field = wx.StaticText(self, -1, "End") self.calendar_heading_sizer.Add(start_text_field) self.calendar_heading_sizer.Add(end_text_field) # calendars themselves starting_year, starting_month, starting_day = map(int, self.__callback_wrapper.get_starting_date().split('-')) starting_datetime = wx.DateTime(year=starting_year, month=starting_month, day=starting_day) self.__current_start_date = starting_datetime self.__current_end_date = wx.DateTime().Today() self.start_cal = wx.adv.GenericCalendarCtrl(self, -1, self.__current_start_date, style = wx.adv.CAL_MONDAY_FIRST) self.start_cal.Bind(wx.adv.EVT_CALENDAR_MONTH, self.on_change_sel_start_date) self.start_cal.Bind(wx.adv.EVT_CALENDAR_SEL_CHANGED, self.on_change_month_start_date) self.end_cal = wx.adv.GenericCalendarCtrl(self, -1, self.__current_end_date, style = wx.adv.CAL_MONDAY_FIRST) self.end_cal.Bind(wx.adv.EVT_CALENDAR_MONTH, self.on_change_sel_end_date) self.end_cal.Bind(wx.adv.EVT_CALENDAR_SEL_CHANGED, self.on_change_month_end_date) self.calendar_sizer.Add(self.start_cal) self.calendar_sizer.Add(self.end_cal) self.__highlight_available_month_days_start_cal() self.__highlight_available_month_days_end_cal()
def init_data(self): if self.update: self.data = self.apply self.persons.SetLabel(self.apply.persons) keys = list(FundKind.all().keys()) self.kind.SetSelection(keys.index(self.apply.kind)) try: dt = wx.DateTime(datetime.datetime.strptime(self.apply.date, '%Y年%m月%d日')) except ValueError: dt = wx.DateTime(datetime.datetime.strptime(self.apply.date, '%Y-%m-%d')) self.date.SetValue(dt) self.money.SetValue(str(round(self.apply.money, 2))) self.reason.SetValue(self.apply.reason) else: dt = self.date.GetValue() df = dt.Format('%Y年%m月%d日') self.data.setdefault('date', df) self.persons.SetLabel(self.user.name) self.data.setdefault('persons', self.persons.GetLabel()) self.kind.SetSelection(0) self.data.setdefault('kind', [k for k in self.kinds.keys()][self.kind.GetSelection()])
def datetime2wxDateTime(dt): """ Convert <datetime.datetime> to <wx.DateTime>. :param dt: Time as <datetime.datetime>. :return: Time as <wx.DateTime> or None if error. """ if dt is None: return None assert isinstance(dt, (datetime.datetime, datetime.date)) wx_dt = None if isinstance(dt, datetime.datetime): wx_dt = wx.DateTime(day=dt.day, month=dt.month - 1, year=dt.year, hour=dt.hour, minute=dt.minute, second=dt.second) elif isinstance(dt, datetime.date): wx_dt = wx.DateTime(day=dt.day, month=dt.month - 1, year=dt.year, hour=0, minute=0, second=0) return wx_dt
def testStringConverterFormat(self): col1 = ColumnDefn(valueGetter="aspectToGet") col2 = ColumnDefn(valueGetter="aspectToGet", stringConverter="%02X") col3 = ColumnDefn(valueGetter="dateTimeCreated", stringConverter="%Y-%m-%d %H:%M:%S") col4 = ColumnDefn(valueGetter="dateCreated", stringConverter="%Y-%m-%d") col5 = ColumnDefn(valueGetter="timeCreated", stringConverter="%H:%M:%S") col6 = ColumnDefn(valueGetter="wx datetime", stringConverter="%Y-%m-%d %H:%M:%S") col7 = ColumnDefn(valueGetter="wx date", stringConverter="%Y-%m-%d") col8 = ColumnDefn(valueGetter="wx time", stringConverter="%H:%M:%S") data = {"aspectToGet": 15} data["dateTimeCreated"] = datetime(1965, 10, 29, 12, 13, 14) data["dateCreated"] = date(1965, 10, 29) data["timeCreated"] = time(12, 13, 14) data["wx datetime"] = wx.DateTime().Set(29, 9, 1965, 12, 13, 14) data["wx date"] = wx.DateTime().Set(29, 9, 1965) data["wx time"] = wx.DateTime().SetHMS(12, 13, 14) self.assertEqual(col1.GetStringValue(data), "15") self.assertEqual(col2.GetStringValue(data), "0F") self.assertEqual(col3.GetStringValue(data), "1965-10-29 12:13:14") self.assertEqual(col4.GetStringValue(data), "1965-10-29") self.assertEqual(col5.GetStringValue(data), "12:13:14") self.assertEqual(col6.GetStringValue(data), "1965-10-29 12:13:14") self.assertEqual(col7.GetStringValue(data), "1965-10-29") self.assertEqual(col8.GetStringValue(data), "12:13:14")
def on_row_selected(self, event): """ Set the date pickers to match the start and end date of the row selected dates The date variable needs to be reset in order to get the start dates to stick :param event: :return: """ self.spatial_plot.reset_highlighter() self.temporal_plot.clear_plot() date = wx.DateTime() start_date_string = self.table.get_selected_row()[3] if date.ParseFormat(start_date_string, "%Y-%m-%d") == -1: raise Exception("start_date_string is not in the right format") self._row_start_date = date self.start_date_picker.SetValue(date) self.start_date_object = date date = wx.DateTime() # Need to reset the date end_date_string = self.table.get_selected_row()[4] if str(end_date_string) == "None": self.end_date_picker.SetValue(wx.DateTime_Now()) elif date.ParseFormat(end_date_string, "%Y-%m-%d") == -1: raise Exception("end_date_string is not in the right format") else: self.end_date_picker.SetValue(date) self.end_date_object = date self._row_end_date = self.end_date_picker.GetValue() # Plot Spatial self.plot_spatial(self.get_selected_id(), self.table.get_selected_row()[1])
def __init__(self, *args, **kwds): self._currentDate = wx.DateTime.Now() self._weekstart = wxSCHEDULER_WEEKSTART_MONDAY super(wxSchedulerCore, self).__init__(*args, **kwds) self._showOnlyWorkHour = True self._dc = None self._schedules = [] self._schBind = [] self._periodCount = 1 #Internal (extenal?) init values self._startingHour = wx.DateTime().Now() self._endingHour = wx.DateTime().Now() self._startingPauseHour = wx.DateTime().Now() self._endingPauseHour = wx.DateTime().Now() self._startingHour.SetHour(8) self._startingHour.SetMinute(00) self._endingHour.SetHour(18) self._endingHour.SetMinute(00) self._startingPauseHour.SetHour(13) self._startingPauseHour.SetMinute(00) self._endingPauseHour.SetHour(14) self._endingPauseHour.SetMinute(00) self._calculateWorkHour() wxSchedulerCore.SetViewType(self)
def __init__( self ): """ Use self.start and self.end for set the star and the end of the schedule. If both start and end datetime have time set to 00:00 the schedule is relative on entire day/days. """ super( wxSchedule, self ).__init__() self._color = self.SCHEDULE_DEFAULT_COLOR self._font = wx.NORMAL_FONT self._font.SetPointSize(10) self._font.SetWeight(wx.FONTWEIGHT_NORMAL) self._foreground = self.SCHEDULE_DEFAULT_FOREGROUND self._category = "Work" self._description = '' self._notes = '' self._end = wx.DateTime().Now() self._start = wx.DateTime().Now() self._done = False self._clientdata = None self._icons = [] self._complete = None self._id = '%.f-%s' % (time.time(), id(self)) # Need for freeze the event notification self._freeze = False self._layoutNeeded = False
def SetValue(self, value): if isinstance(value,(datetime.date,datetime.datetime)): dt = wx.DateTime(value.day, value.month-1 , value.year) elif isinstance(value,wx.DateTime): dt = wx.DateTime(value.GetDay(), value.GetMonth(), value.GetYear()) else: dt = wx.DateTime.Today() wx.adv.DatePickerCtrl.SetValue(self, dt)
def SetValue(self, value): """Set either datetime.datetime or wx.DateTime""" if isinstance(value, (datetime.date, datetime.datetime)): wxvalue = wx.DateTime() wxvalue.Set(year=value.year, month=value.month - 1, day=value.day) value = wxvalue elif value is None: value = wx.DateTime() wx.DatePickerCtrl.SetValue(self, value)
def test_datetimeFormatParse(self): d = wx.DateTime(1, wx.DateTime.Mar, 2012, 8, 15, 45) fmt = '%Y-%m-%d %H:%M:%S' st = d.Format(fmt) self.assertEqual(st, '2012-03-01 08:15:45') d2 = wx.DateTime() d2.ParseFormat(st, fmt) self.assertEqual(d, d2)
def test_datetime1(self): d1 = wx.DateTime() self.assertTrue(not d1.IsValid()) d2 = wx.DateTime(1, wx.DateTime.Mar, 2012, 8, 15, 45, 123) self.assertEqual(d2.year, 2012) self.assertEqual(d2.month, wx.DateTime.Mar) self.assertEqual(d2.day, 1) self.assertEqual(d2.hour, 8) self.assertEqual(d2.minute, 15) self.assertEqual(d2.second, 45)
def GetValue(self): strTmp = self.Value if wx.DateTime().ParseFormat(strTmp, format=self.defaultparser) == -1: return wx.DateTime() if bool([el for el in [x in strTmp for x in 'ymd'] if el]): return wx.DateTime() strSplit = strTmp.split('/') value = wx.DateTimeFromDMY(int(strSplit[self.defaultparser.split('/').index('%d')]), int(strSplit[self.defaultparser.split('/').index('%m')]) -1, int(strSplit[self.defaultparser.split('/').index('%Y')])) if value.IsEarlierThan(wx.DateTimeFromDMY(01,01,1800)): return wx.DateTime()
def SetDateSelectorRanges(self, ranges): if ranges: minDate = wx.DateTime() minDate.ParseFormat(ranges[0], "%Y-%m-%d") maxDate = wx.DateTime() maxDate.ParseFormat(ranges[1], "%Y-%m-%d") self.dateCtrlMin.SetRange(minDate, maxDate) self.dateCtrlMax.SetRange(minDate, maxDate)
def test_datetimeSet(self): d1 = wx.DateTime.Now() tm = d1.GetTm() d2 = wx.DateTime() d2.SetTm(tm) self.assertTrue(d1 == d2) d3 = wx.DateTime() d3.Set(tm.mday, tm.mon, tm.year, tm.hour, tm.min, tm.sec, tm.msec) self.assertTrue(d1 == d3)
def SetValue(self, dt): wx_from_date = wx.DateTime() wx_from_date.Set(dt[0].day, dt[0].month, dt[0].year) self.fromDp.SetValue(wx_from_date) wx_to_date = wx.DateTime() if dt[1] is None: pass else: wx_to_date.Set(dt[1].day, dt[1].month, dt[1].year) self.toDp.SetValue(wx_to_date)
def __init__(self, parent, minValue, maxValue, width, title): super(MinMaxDateCtrlPanel, self).__init__(parent) self.selectedValueMin = minValue self.selectedValueMax = maxValue self.isActive = False # controls self.checkBox = wx.CheckBox(self, -1, title) staticMinText = wx.StaticText(self, -1, 'From: ') staticMaxText = wx.StaticText(self, -1, 'To: ') datePanelStyle = wx.adv.DP_DROPDOWN initMinDate = wx.DateTime() initMinDate.ParseFormat(minValue, "%Y-%m-%d") self.dateCtrlMin = wx.adv.DatePickerCtrl(self, dt=initMinDate, size=(width, -1), style=datePanelStyle ) self.dateCtrlMin.Disable() initMaxDate = wx.DateTime() initMaxDate.ParseFormat(maxValue, "%Y-%m-%d") self.dateCtrlMax = wx.adv.DatePickerCtrl(self, dt=initMaxDate, size=(width, -1), style=datePanelStyle ) self.dateCtrlMax.Disable() self.Disable() # sizers dateCtrlsSizer = wx.BoxSizer(wx.HORIZONTAL) dateCtrlsSizer.Add((5, 0)) dateCtrlsSizer.Add(staticMinText, 0, wx.EXPAND) dateCtrlsSizer.Add(self.dateCtrlMin, 0, wx.EXPAND) dateCtrlsSizer.Add((5, 0)) dateCtrlsSizer.Add(staticMaxText, 0, wx.EXPAND) dateCtrlsSizer.Add(self.dateCtrlMax, 0, wx.EXPAND) dateCtrlsSizer.Add((5, 0)) checkBoxSizer = wx.BoxSizer(wx.HORIZONTAL) checkBoxSizer.Add((5, 0)) checkBoxSizer.Add(self.checkBox, 0, wx.EXPAND) panelSizer = wx.BoxSizer(wx.VERTICAL) panelSizer.Add(checkBoxSizer, 0, wx.ALIGN_LEFT) panelSizer.Add((0, 5)) panelSizer.Add(dateCtrlsSizer, 0, wx.ALIGN_CENTER) self.SetSizer(panelSizer) # events self.dateCtrlMin.Bind(wx.adv.EVT_DATE_CHANGED, self.OnDateSelectorMin) self.dateCtrlMax.Bind(wx.adv.EVT_DATE_CHANGED, self.OnDateSelectorMax) self.checkBox.Bind(wx.EVT_CHECKBOX, self.OnCheckBox)
def onAddWeeks(self, event=None, weeks=0): self.duration = weeks self.validDuration = True newEndDate = wx.DateTime(self.routineStartDate).Add( wx.DateSpan(weeks=int(self.duration))) self.routineEndDate = newEndDate self.calendarEnd.SetValue(newEndDate) self.endDateText.SetLabel("End Date: {}".format( wx.DateTime(newEndDate).Format("%A, %B %d %G"))) self.durationText.SetLabel("Routine Duration: {} Weeks".format( str(self.duration))) self.durationText.Update() self.calendarEnd.Update()
def buildInputControls(self, sizer): #sizer.Clear(True) from mainlogic import _ if self.actualOpValue == _('is filled') or self.actualOpValue == _('is not filled'): if self.attrDataType == 'string': if self.stringInput: self.stringInput.Hide() elif self.attrDataType == 'datetime': if self.dateInput1: self.dateInput1.Hide() if self.dateInput2: self.andLabel.Hide() self.dateInput2.Hide() else: if self.attrDataType == 'string': if not self.stringInput: self.stringInput = wx.TextCtrl(self, -1, "", size=wx.DefaultSize) sizer.Add(self.stringInput, 1, wx.EXPAND) self.stringInput.Show() elif self.attrDataType == 'datetime': if not self.dateInput1: self.dateInput1 = CalendarTextbox(self, -1, wx.DateTime(), 'dd/mm/yyyy') sizer.Add(self.dateInput1, 1, wx.EXPAND) self.dateInput1.Show() if self.opCb.GetValue()== _("between"): if not self.dateInput2: sizer.AddSpacer(5) self.andLabel = wx.StaticText(self, -1, _("and"), size=wx.Size(25, -1)) sizer.Add(self.andLabel, 0) sizer.AddSpacer(5) self.dateInput2 = CalendarTextbox(self, -1, wx.DateTime(), 'dd/mm/yyyy') sizer.Add(self.dateInput2, 1, wx.EXPAND) self.andLabel.Show() self.dateInput2.Show() else: if self.dateInput2: self.andLabel.Hide() self.dateInput2.Hide() sizer.Layout()
def test_find_latest(self): el_tree = init_XML("Test", 2020) wx_dt_find = wx.DateTime(2, 11, 2020, 6, 31) doc = el_tree.getroot().find("doc") assert find_closest_entry_in_tree(el_tree, wx_dt_find, newer=False) is None n = 3 for k in range(n): wx_dt = wx.DateTime(2, 11, 2020, k + 1, 31) insert_text_entry(doc, wx_dt, f"Test_{k}") wx_dt_found, t = find_closest_entry_in_tree(el_tree, wx_dt_find, newer=False) assert wx.DateTime(2, 11, 2020, n, 31).IsEqualTo(wx_dt_found)
def showAllText(self): '''显示用户信息''' data = self.getPersonalInfo(self.eID) # 通过身份证号获取申请人信息 self.password.SetValue(data[0]) # 设置登录密码 self.confirmpd.SetValue(data[0]) self.XingMing.SetValue(str(data[1])) # 设置姓名 self.certNo.SetValue(str(data[2])) # 设置身份证号 if data[3] == '男': self.sex1.SetValue(True) # 将单选按钮设置为选中或取消选中状态。 else: self.sex2.SetValue(True) # 设置性别2 # 处理时间 a = str(data[4]) year = a[:4] month = a[5:7] day = a[8:10] othertime = wx.DateTime(day=int(day), month=int(month) - 1, year=int(year), hour=0, minute=0, second=0, millisec=0) self.birth.SetValue(othertime) # 设置出生日期 self.job.SetValue(str(data[5])) # 设置职业 self.school.SetValue(str(data[6])) # 设置毕业学校 self.degreeType.SetValue(str(data[7])) # 设置学历/学位类别 self.danwei.SetValue(str(data[8])) # 设置单位 self.zhicheng.SetValue(str(data[9])) # 设置职称 self.phone.SetValue(str(data[10])) # 设置手机号 self.QQ.SetValue(str(data[11])) # 设置QQ self.email.SetValue(str(data[12])) # 设置电子邮箱
def shift_datetime(self, old_date, months): """ Create a new DateTime from *old_date* with an offset number of *months*. Parameters ---------- old_date : DateTime The old DateTime to make a date copy of. Does not copy time. months : int A signed int to add or subtract from the old date months. Does not support jumping more than 12 months. """ new_date = wx.DateTime() new_month = old_date.GetMonth() + months new_year = old_date.GetYear() if new_month < 0: new_month += 12 new_year -= 1 elif new_month > 11: new_month -= 12 new_year += 1 new_day = min(old_date.GetDay(), 28) new_date.Set(new_day, new_month, new_year) return new_date
def SetDate(self, dateDD=None): jour = dateDD.day mois = dateDD.month - 1 annee = dateDD.year date = wx.DateTime() date.Set(jour, mois, annee) self.SetValue(date)
def SetValue(self, value): if value: dt = wx.DateTime() dt.Set(value.day, value.month - 1, value.year) else: dt = wx.DateTime.Today() super(DateEditor, self).SetValue(dt)
def SetDate(self, dateTxt=None): jour = int(dateTxt[8:10]) mois = int(dateTxt[5:7]) - 1 annee = int(dateTxt[:4]) date = wx.DateTime() date.Set(jour, mois, annee) self.SetValue(date)
def __init__(self, parent, entry: "EntryTimestamp"): super().__init__(parent) self.entry = entry # Test if the obj of the entry is available if entry.obj is None: return if not isinstance(entry.obj, arrow.Arrow): return # Obj hsizer = wx.BoxSizer(wx.HORIZONTAL) dt = self.entry.obj.datetime wx_datetime = wx.DateTime( day=dt.day, month=dt.month - 1, # in wx.adc.DatePickerCtrl the month start with 0 year=dt.year, hour=dt.hour, minute=dt.minute, second=dt.second, millisec=dt.microsecond // 1000, ) self.date_picker = wx.adv.DatePickerCtrl( self, wx.ID_ANY, wx_datetime, wx.DefaultPosition, wx.DefaultSize, wx.adv.DP_DROPDOWN | wx.adv.DP_SHOWCENTURY, ) hsizer.Add(self.date_picker, 0, wx.LEFT, 0) self.time_picker = wx.adv.TimePickerCtrl( self, wx.ID_ANY, wx_datetime, wx.DefaultPosition, wx.DefaultSize, wx.adv.TP_DEFAULT, ) hsizer.Add(self.time_picker, 0, wx.LEFT, 5) self.obj_txtctrl = wx.TextCtrl( self, wx.ID_ANY, self.entry.obj_str, wx.DefaultPosition, wx.DefaultSize, wx.TE_READONLY, ) hsizer.Add(self.obj_txtctrl, 1, wx.LEFT | wx.ALIGN_CENTER_VERTICAL, 5) self.SetSizer(hsizer) self.Layout() # Connect Events self.date_picker.Bind(wx.adv.EVT_DATE_CHANGED, self._on_obj_changed) self.time_picker.Bind(wx.adv.EVT_TIME_CHANGED, self._on_obj_changed)
def ResetTopicStartTime(self, t): running = self.Topic.topic.Running now = wx.DateTime() now.SetToCurrent() dt = now.Subtract(t) self.Topic.topic.Reset(dt.GetSeconds()) self.Topic.topic.Running = running
def SetValue(self, value): if value: dt = wx.DateTime() dt.Set(value.day, value.month - 1, value.year) else: dt = wx.DateTime.Today() wx.DatePickerCtrl.SetValue(self, dt)