Esempio n. 1
0
    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)
Esempio n. 2
0
 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
Esempio n. 3
0
 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)
Esempio n. 4
0
    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()
Esempio n. 5
0
File: form.py Progetto: ehoac/wfund
    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()])
Esempio n. 6
0
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
Esempio n. 7
0
    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")
Esempio n. 8
0
    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])
Esempio n. 9
0
    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)
Esempio n. 10
0
	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
Esempio n. 11
0
 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)
Esempio n. 12
0
 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)
Esempio n. 13
0
    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)
Esempio n. 14
0
 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)
Esempio n. 15
0
 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()
Esempio n. 16
0
 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)
Esempio n. 17
0
 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)
Esempio n. 18
0
    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)
Esempio n. 19
0
    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)
Esempio n. 20
0
 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()
Esempio n. 21
0
    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()
Esempio n. 22
0
 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)
Esempio n. 23
0
 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]))  # 设置电子邮箱
Esempio n. 24
0
    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
Esempio n. 25
0
 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)
Esempio n. 26
0
 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)
Esempio n. 27
0
 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)
Esempio n. 28
0
    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)
Esempio n. 29
0
 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
Esempio n. 30
0
 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)