class Dato: def __init__(self, dd, mm, aaaa): self._dagnr = dd self._mnd = mm self._?r = aaaa def dagnr(self): return self._dagnr def mnd(self): return self._mnd def ?r(self): return self._?r def __str__(self): mndNavn = ["januar", "februar", "mars", "april", "mai", "juni", "juli", "august", "september", "oktober", "november", "desember"] return str(self._dagnr) + '. ' + str( mndNavn[ self._mnd -1 ] ) + ' ' + str(self._?r) def lagKalender2023(): kalender = [] for dag in range(32): for mnd in range(13): kalender.append(Dato(dag,mnd,2023)) return kalender dageriMnd = { 1:31, 2:28, 3:31, 4:30, 5:31, 6:30, 7:31, 8:31, 9:30, 10:31, 11:30, 12:31, 0:0 } skudd?r = [2024, 2028, 2032, 2036, 2040] kalender = {} # 3A def taBortUgyldigeDatoer(liste): slettes = [] for d in liste: # print(d.mnd(), d.dagnr()) if dageriMnd[d.mnd()] < d.dagnr() or d.mnd() == 0 or d.dagnr() == 0: slettes.append(d) for d in slettes: liste.remove(d) # print(d, 'er slettet') return liste # 3B def lagKalender2023_3B(): kalender = [] for mnd in range(1,13): for dagnr in range(1, dageriMnd[mnd] + 1): kalender.append(Dato(dagnr,mnd,2023)) return kalender # 3C def lagKalender2023_2040(): kalender = {} for ?r in range(2023,2041): kalender[?r] = [] for mnd in range(1,13): for dagnr in range(1, dageriMnd[mnd] + 1): kalender[?r].append(Dato(dagnr,mnd,?r)) # da gjenst?r ? legge til 29. februar i skudd?rene: for ?r in skudd?r: # 31 + 28 = 59, s? 28.februar ligger p? indeks 58, s? 29. skal inn p? indeks 59: kalender[?r].insert(59, Dato(29,2,?r)) return kalender # Testprogram; ikke spurt etter i oppgaven kalender = lagKalender2023() print(len(kalender)) kalender = taBortUgyldigeDatoer(kalender) print(len(kalender)) kalender = lagKalender2023_3B() print(len(kalender)) kalender = lagKalender2023_2040() ?r2023 = kalender[2023] # ikke skudd?r ?r2040 = kalender[2040] # skudd?r for i in range(56,62): print(?r2023[i]) for i in range(56,62): print(?r2040[i]) #sum = 0 #for k in dageriMnd: # sum += dageriMnd[k] #print(sum) print(?r2023[75])