Versions Compared

Key

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

a) 

Code Block
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)

Code Block
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:

Code Block
...
    case 2
        days = 28+ isLeapYear(year);
    case 3

Det betyr at daysInMonth(mndNr, year) må se slik ut

 

 

Code Block
languagenone
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