now we can treat isoweek.
(mon:1 => sun:7. and 0 is also treated as sunday)
This commit is contained in:
松本 太一 2011-01-28 00:03:38 +09:00
parent 315c6ebeb1
commit e558b61246
2 changed files with 9 additions and 2 deletions

View File

@ -25,7 +25,6 @@ class croniter:
{ },
{ 'jan':1, 'feb':2, 'mar':3, 'apr':4, 'may':5, 'jun':6,
'jul':7, 'aug':8, 'sep':9, 'oct':10, 'nov':11, 'dec':12 },
# { 'mon':0, 'tue':1, 'wed':2, 'thu':3, 'fri':4, 'sat':5, 'sun':6 },
{ 'sun':0, 'mon':1, 'tue':2, 'wed':3, 'thu':4, 'fri':5, 'sat':6 },
{ }
)
@ -68,6 +67,8 @@ class croniter:
else:
if not re.search(r'^(\d+|\*)$', t):
t = self.ALPHACONV[i][t.lower()]
try: t = int(t)
except: pass
if t in self.LOWMAP[i]:
t = self.LOWMAP[i][t]
if t != '*' and (int(t) < self.RANGES[i][0] or int(t) > self.RANGES[i][1]):

View File

@ -178,6 +178,12 @@ class CroniterTest(unittest.TestCase):
self.assertEqual(prev3.day, 15)
self.assertEqual(prev3.hour, 0)
self.assertEqual(prev3.minute, 0)
def testISOWeekday(self):
base = datetime(2010, 2, 25)
itr = croniter('0 0 * * 7', base)
n1 = itr.get_next(datetime)
self.assertEqual(n1.isoweekday(), 7)
if __name__ == '__main__':
unittest.main()