A script to assess if a given year (in the Gregorian Calendar system) is a leap year or not.
It returns 0 if is not a leap year,
it returns 1 if it is a leap year.
>> A = [1200 1538 2001 ; 816 1900 1908 ; 2000 2004 2011]
1200 1538 2001
816 1900 1908
2000 2004 2011
1 0 0
1 0 1
1 1 0
It looks at the remainder of the division, if the year is divisible by 4, 100 and 400 and makes the decision according to it. (For a year ending in 00 is not a leap year unless is divisible for 400 too).
Isaac Mancero Mosquera (2021). isleap.m (https://www.mathworks.com/matlabcentral/fileexchange/31778-isleap-m), MATLAB Central File Exchange. Retrieved .
And sorry I'm freely using the word "script", my shame, I'll try to correct that soon.
To Jan Simon: You are right. I've deleted that unnecessary line. I made the error during the testing stage when it was still not written as a function.
On a different note, I couldn't find that other script you mentioned before, and I was actually needing one. Indeed, I decided to write this script because of that.
To all Users: this is a simple script, it's not checking if you are entering a complex, a real or a transfinite number. OTOH no citation is needed if you use this file.
There is absolutely no reason to clear "mod" inside a function. Please read the documentation about the difference between "scripts" and "functions".
You can simplify the algorithm: ~mod(Ym 4) & (mod(Y, 100) | ~mod(Y, 400))
An older submission, which checks the inputs also: http://www.mathworks.com/matlabcentral/fileexchange/14172-isleap-function
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!