# If else condition to determine if a year is a leap year

83 Ansichten (letzte 30 Tage)
chafah zachary am 7 Mär. 2014
Kommentiert: Rik am 31 Mär. 2020
Hi there. Given a variable Y which stores a year in the 20th century (between 1901 and 2000), write MATLAB code to create a variable Days and assign it a value of 366 if the year is a leap year or a value of 365 otherwise.
##### 1 KommentarKeine anzeigenKeine ausblenden
Jos (10584) am 7 Mär. 2014
Homework, not? What did you try yourself?

Melden Sie sich an, um zu kommentieren.

### Akzeptierte Antwort

Jos (10584) am 7 Mär. 2014
function Days = GetDays (Y)
if isLeapYear(Y)
Days = 365 ;
else
Days = 366 ;
end
Now your problem is to write second function IsLeapYear that returns true for leap years. (hint: see Nitin's answer)
##### 1 KommentarKeine anzeigenKeine ausblenden
chafah zachary am 8 Mär. 2014
Thank you Jos. I got it

Melden Sie sich an, um zu kommentieren.

### Weitere Antworten (3)

Nitin am 7 Mär. 2014
These are the conditions for a leap year :
• The year is evenly divisible by 4;
• If the year can be evenly divided by 100, it is NOT a leap year, unless;
• The year is also evenly divisible by 400. Then it is a leap year.
I have done the first part, I'll leave the rest to you to implement
if mod(year,4)== 0 % use the modulo operator to check for remainder
days == 366
else
days == 365
end
##### 1 KommentarKeine anzeigenKeine ausblenden
chafah zachary am 8 Mär. 2014
Thank you Nitin

Melden Sie sich an, um zu kommentieren.

Ian am 8 Sep. 2016
ndays = datenum(Y+1,0,0) - datenum(Y,0,0);
isleap = ndays == 366;
##### 0 Kommentare-1 ältere Kommentare anzeigen-1 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

Shikhar Srivastava am 28 Mär. 2020
Bearbeitet: Shikhar Srivastava am 28 Mär. 2020
if(year/4==0 || year/400==0 && ~((year/100==0)))
##### 4 Kommentare3 ältere Kommentare anzeigen3 ältere Kommentare ausblenden
Rik am 31 Mär. 2020
You are using division. Consider the year 2004, which was a leap year. What happens for each of your checks?
year/4==0% year/4 is 501, so this returns false
year/400==0% year/400 is 5.01, so this returns false
~(year/100==0)% year/100 is 20.04, so this returns true
if false || (false && true)
If you describe it with words, what is the condition to check if a year is a leap year?

Melden Sie sich an, um zu kommentieren.

### Kategorien

Mehr zu Graphics Object Programming finden Sie in Help Center und File Exchange

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!