示例#1
0
    def compute_date(self, text, default=None, year=None):
        if default is None:
            default = datetime_strftime(datetime.datetime.now(), self.format)
        if text == self.initial_value or not text:
            return ''

        match = self.regex.match(text)
        if not match:
            return ''
        for i in range(len(match.groups())):
            val = match.group(i + 1)
            n = len(val)
            val = val.strip()
            val = val.strip('_')
            if n != 4:
                val = val.lstrip('0')
            if not val:
                continue
            fchar = '0'
            if n == 4:
                fchar = '_'
                if len(val) == 1:
                    val = '0' + val
            if year and n == 4 and len(val) != 4:
                val = year
            val = (fchar * (n - len(val))) + val
            start = match.start(i + 1)
            end = match.end(i + 1)
            text = text[:start] + val + text[end:]

        for a in range(len(self.initial_value)):
            if self.initial_value[a] == text[a]:
                text = text[:a] + default[a] + text[a + 1:]
        return text
 def test_date(self, text):
     default = datetime_strftime(datetime.datetime(2000, 1, 1), self.format)
     try:
         time.strptime(self.compute_date(text, default=default, year="2000"), self.format)
     except ValueError:
         return False
     return True
    def compute_date(self, text, default=None, year=None):
        if default is None:
            default = datetime_strftime(datetime.datetime.now(), self.format)
        if text == self.initial_value or not text:
            return ""

        match = self.regex.match(text)
        if not match:
            return ""
        for i in range(len(match.groups())):
            val = match.group(i + 1)
            n = len(val)
            val = val.strip()
            val = val.strip("_")
            if n != 4:
                val = val.lstrip("0")
            if not val:
                continue
            fchar = "0"
            if n == 4:
                fchar = "_"
                if len(val) == 1:
                    val = "0" + val
            if year and n == 4 and len(val) != 4:
                val = year
            val = (fchar * (n - len(val))) + val
            start = match.start(i + 1)
            end = match.end(i + 1)
            text = text[:start] + val + text[end:]

        for a in range(len(self.initial_value)):
            if self.initial_value[a] == text[a]:
                text = text[:a] + default[a] + text[a + 1 :]
        return text
示例#4
0
 def date_set(self, dt):
     if dt:
         self.set_text(datetime_strftime(dt, self.format))
     else:
         if self.is_focus():
             self.set_text(self.initial_value)
         else:
             self.set_text('')
 def date_set(self, dt):
     if dt:
         self.set_text(datetime_strftime(dt, self.format))
     else:
         if self.is_focus():
             self.set_text(self.initial_value)
         else:
             self.set_text("")
示例#6
0
 def test_date(self, text):
     default = datetime_strftime(datetime.datetime(2000, 1, 1), self.format)
     try:
         time.strptime(
             self.compute_date(text, default=default, year='2000'),
             self.format)
     except ValueError:
         return False
     return True