a)
function days = daysInMonth(mndNr) switch ( mndNr ) case 1 days = 31; case 2 days = 28; case 3 days = 31; case 4 days = 30; case 5 days = 31; case 6 days = 30; case 7 days = 31; case 8 days = 31; case 9 days = 30; case 10 days = 31; case 11 days = 30; case 12 days = 31; otherwise days = 0; end end
b)
function res = isLeapYear ( year ) if mod (year , 4) == 0 % mod (a, b) gir resten dersom a deles på b. % Dersom mod (year , 4) er lik 0, er year delelig på 4 if mod (year , 100) == 0 if mod (year , 400) == 0 res = true ; % Delelig paa 4, 100 og 400 else res = false ; % Delelig paa 4 og 100 , men ikke 400 end else res = true ; % Delelig paa 4, men ikke 100 end else res = false ; % Ikke delelig på 4 end end
Eneste endringen som trengs er at februar nå må sjekke om det er skuddår i år, og så legge til verdien til funksjonen isLeapYear:
... case 2 days = 28+ isLeapYear(year); case 3
Det betyr at daysInMonth(mndNr, year) må se slik ut
function res = isLeapYear ( year ) if mod (year , 4) == 0 % mod (a, b) gir resten dersom a deles på b. % Dersom mod (year , 4) er lik 0, er year delelig på 4 if mod (year , 100) == 0 if mod (year , 400) == 0 res = true ; % Delelig paa 4, 100 og 400 else res = false ; % Delelig paa 4 og 100 , men ikke 400 end else res = true ; % Delelig paa 4, men ikke 100 end else res = false ; % Ikke delelig på 4 end end