Go4Expert

Go4Expert (http://www.go4expert.com/)
-   Visual Basic [VB] (http://www.go4expert.com/articles/visual-basic-tutorials/)
-   -   Check For Leap Year in VB.Net (http://www.go4expert.com/articles/check-leap-year-vbnet-t4300/)

pradeep 14May2007 18:56

Check For Leap Year in VB.Net
 
When dealing with dates in VB.NET, it's a good idea not to perform manual checks or calculations, which may be inaccurate depending on the quality of the code. Instead, it's advisable to rely on the functionality of classes provided by .NET.

For instance, if you need to determine if a given year is a leap year, you can use VB.NET's IsLeapYear function. Here's an example of how you can use the function:

Code: VB.Net

Private Sub LeapYearCheck()
     Dim bLeapYear AsBoolean
 
     bLeapYear = Date.IsLeapYear(Now.Year)
     MessageBox.Show(bLeapYear)
 
     bLeapYear = Date.IsLeapYear(2004)
     MessageBox.Show(bLeapYear)
 End Sub

In the example, we define a Boolean variable, bLeapYear, to hold the result of whether a given year is a leap year. we then set the value of bLeapYear to the IsLeapYear property of the Date class and pass to it the current year, which we obtain using the Year property of the Now class. We show the value of bLeapYear in a MessageBox. The result is False because 2007 is not a leap year. After that,we follow the same steps for 2004, which is a leap year. In that case, MessageBox shows True.

tailhook123 2Jun2007 03:36

Re: Check For Leap Year in VB.Net
 
bLeapYear = Date.IsLeapYear(Now.Year)

Nice.. whats the class type for the Date variable you are using?

Is it just like Dim Date asDate?

And the reason this code can be tricky if done manually is that common knowledge is that there is a leap year every 4 years. Uncommon knowledge is that there is an extra rule that any year divisible by 100 but not divisible by 400 is not a leap year.

So 1900 wasn't a leap year while 2000 was.

pradeep 2Jun2007 10:06

Re: Check For Leap Year in VB.Net
 
The logic behind a leap year, read here http://www.go4expert.com/showpost.ph...22&postcount=4


All times are GMT +5.5. The time now is 13:22.