Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Læringsmål:

  •  Kap løkker PLACEHOLDER
     

Legg inn funksjonen getCalendar (se vedlegg). Denne krever daysInMonth og getMonthStartDay, se PLACEHOLDER. Skuddår må være med i beregningene. Du kan bruke lene daysInMonth.m og isLeapYear.m . 

For å kunne denere funksjonen getMonthStartDay trenger vi først å vite hvilken dag året starter på.

a) Lag funksjonen getYearStartDay. Funksjonen skal ta inn et årstall som parameter og returnere hvilken ukedag året starter på (1 = Mandag, 2 = Tirsdag, ..., 7 = Søndag). 
Tips: Året 1900 startet på en mandag. For hvert år ytter startdagen seg med en dag. Det vil si at 1901 startet på en tirsdag. Hvis året er et skuddår, ytter startdagen i neste år seg med to dager.

 For å teste denne funksjonen kan du kjøre følgende skript:

Code Block
languagenone
getYearStartDay (1900) % skal skrive ut 1
getYearStartDay (1901) % skal skrive ut 2
getYearStartDay (1902) % skal skrive ut 3
getYearStartDay (1903) % skal skrive ut 4
getYearStartDay (1904) % skal skrive ut 5
getYearStartDay (1905) % skal skrive ut 7
getYearStartDay (1906) % skal skrive ut 1
getYearStartDay (2012) % skal skrive ut 7


b) Lag funksjonen getMonthStartDay. Den skal ta inn et årstall og et månedsnummer som parameter (1 = Januar, 2 = Februar, ..., 12 = Desember). Funksjonen skal returnere hvilken ukedag måneden starter på (1 = Mandag, 2 = Tirsdag, ..., 7 = Søndag). 

Code Block
languagenone
getMonthStartDay (2012 , 0) % skal skrive ut 0
getMonthStartDay (2012 , 1) % skal skrive ut 7
getMonthStartDay (2012 , 2) % skal skrive ut 3
getMonthStartDay (2012 , 3) % skal skrive ut 4
getMonthStartDay (2012 , 4) % skal skrive ut 7
getMonthStartDay (2012 , 5) % skal skrive ut 2
getMonthStartDay (2012 , 6) % skal skrive ut 5
getMonthStartDay (2012 , 7) % skal skrive ut 7
getMonthStartDay (2012 , 8) % skal skrive ut 3
getMonthStartDay (2012 , 9) % skal skrive ut 6
getMonthStartDay (2012 , 10) % skal skrive ut 1
getMonthStartDay (2012 , 11) % skal skrive ut 4
getMonthStartDay (2012 , 12) % skal skrive ut 6
getMonthStartDay (2012 , 13) % skal skrive ut 0