x
Solved

# Calculation for leap year?

Posted on 2007-11-19
Medium Priority
737 Views
I am currently trying to calculate if a year is a leap year or not. arrYear(i) would be just a input for the year..

So, I entered the year 2008 and it return a false. What gives?
``````Dim blnLeapYear As Boolean = ((arrYear(i) Mod 4 = 0) And (arrYear(i) Mod 100 = 0)) Or (arrYear(i) Mod 400 = 0)
``````
0
Question by:Sharalynn
• 3
• 2

LVL 10

Assisted Solution

Oliver Amaya earned 800 total points
ID: 20312027
Hi, there's a built-in function that does that for you:
``````Dim blnLeapYear As Boolean = DateTime.IsLeapYear(arrYear(i))
``````
0

LVL 9

Accepted Solution

codeclay earned 1200 total points
ID: 20312126
Dim blnLeapYear As Boolean = ((arrYear(i) Mod 4 = 0) And (arrYear(i) Mod 100 <> 0)) Or (arrYear(i) Mod 400 = 0)
0

Author Comment

ID: 20312888
Thank you both so much!

For some reason the built-in function returns an error:
Year must be between 1 and 9999.
Parameter name: year

However the 2nd one works great. I must have done the 1st one wrong somehow. Just fyi, I get the value from a dropdownlist using something like ddlYear1.SelectedItem.Value
0

Author Closing Comment

ID: 31409921
Nice!
0

LVL 10

Expert Comment

ID: 20313278
Well as the error says you're sending a number that is either lower than 1 or higher than 9999, maybe you got a null or empty value in your DropDownList?, it's always good to add validations so that exceptions like that are not raised.
0

Author Comment

ID: 20318852
That's weird because after the value has been retrieved, the 2nd one work for me but the first one didn't. I also made sure the value has been converted of type Integer first. There are only 3 year values as well. No idea what happened there. Ah well, it works out in the end anyway. Choices are good!
0

## Featured Post

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.