class Date: daysPerMonth = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]
def __init__( self, month, day, year ): if 0 < month <= 12: self.month = month else: raise ValueError, "Invalid value for month: %d" % month
if year >= 0: self.year = year else: raise ValueError, "Invalid value for year: %y" % year self.day = self.checkDay( day )
print "Date constructor:", self.display()
def __del__( self ): print "Date object about to be destroyed:", self.display()
def display( self ): print "%d/%d/%d" % ( self.month, self.day, self.year )
def checkDay( self, testDay ): if 0 < testDay <= Date.daysPerMonth[ self.month ]: return testDay elif self.month == 2 and testDay == 29 and ( self.year % 400 == 0 or self.year % 100 != 0 and self.year % 4 == 0 ): return testDay else: raise ValueError, "Invalid day: %d for month: %d" % ( testDay, self.month )
|