"""Manage (year, month) dates.""" def restore(args): year = int(args[0]) month = int(args[1]) return Date(year, month) class Date: def __init__(self, year, month): "create a date from year and month." self._year = year self._month = month def save(self, f): print >> f, "/".join(["Date", str(self._year), str(self._month)]) def year(self): "return year portion of date." return self._year def month(self): "return month portion of date." return self._month def __cmp__(self, other): "return -1, 0 or 1 if date1 is before, same or after date2." if self.year() < other.year(): return -1 if self.year() > other.year(): return 1 if self.month() < other.month(): return -1 if self.month() > other.month(): return 1 return 0 def __str__(self): return '%s/%s' % (self.month(), self.year()) if __name__ == '__main__': def test(d1, d2): if d1 < d2: print d1, 'is before', d2 elif d1 > d2: print d1, 'is after', d2 else: print d1, 'is the same as', d2 test(Date(2000, 1), Date(1999, 8)) test(Date(2000, 1), Date(2000, 1)) test(Date(1999, 8), Date(2000, 1))