Bekijk de opnderstaande klasse $$\verb!Datum!$$. Deze klasse bevat de methode $$\verb!__str__()!!$$ die het mogelijk maakt een datum in een welbepaald formaat af te drukken, namelijk $$\verb!dag/maand/jaar!$$, waarbij de maand numeriek weergegeven wordt. Het is de bedoeling om in deze oefening twee nieuwe klassen te definiƫren die overeren van de klasse $$\verb!Datum!$$, waarbij verschillende afdrukformaten gedefinieerd worden, namelijk:
class Datum(object):
aantal_dagen = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
min_jaar = 1900
@staticmethod
def _is_geldig(dag, maand, jaar):
if maand > 0 and maand < 13 and jaar > Datum.min_jaar :
return dag > 0 and dag <= Datum.aantal_dagen[maand - 1]
else:
return False
def __init__(self, dag, maand, jaar):
if Datum._is_geldig(dag, maand, jaar):
self._dag = dag
self._maand = maand
self._jaar = jaar
else:
self._dag = 0
self._maand = 0
self._jaar = 0
def get_dag(self):
return self._dag
def get_maand(self):
return self._maand
def get_jaar(self):
return self._jaar
def __str__(self):
return str(self._dag) + '/' + str(self._maand) + '/' + str(self._jaar)
d_standaard = Datum(1, 12, 2016) d_engels = EngDatum(1, 12, 2016) d_nederlands = NedDatum(1, 12, 2016) print(d_standaard) -> 1/12/2016 print(d_engels) -> December 1, 2016 print(d_nederlands) -> 1 december 2016