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])