Reputation: 12455
Is there any method for calculating the number of days in a month?
Upvotes: 9
Views: 27353
Reputation: 4127
To get the number of days of current month
Dim CurrentMonthDays As Int16 = DateTime.DaysInMonth(DateTime.Now.Year,DateTime.Now.Month)
Upvotes: 1
Reputation: 2914
You have two simple solutions:
5546>>m&1|30^(m==2)*2+(m==2&&y%4==0)))
or
(62648012>>m*2&3)+28+(m==2&&y%4==0)))
where m is the number of month and y is the year.
this solution is the same below, an array, but the array is bit masked in magic numbers.
Upvotes: -2
Reputation: 29659
Yes:
Const July As Integer = 7
Const Feb As Integer = 2
' daysInJuly gets 31. '
Dim daysInJuly As Integer = System.DateTime.DaysInMonth(2001, July)
' daysInFeb gets 28 because the year 1998 was not a leap year. '
Dim daysInFeb As Integer = System.DateTime.DaysInMonth(1998, Feb)
' daysInFebLeap gets 29 because the year 1996 was a leap year. '
Dim daysInFebLeap As Integer = System.DateTime.DaysInMonth(1996, Feb)
Credit goes to MSDN.
Upvotes: 18
Reputation: 269
Use an array: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] Add one to Feb if (year mod 400 = 0) or ( (year mod 4 = 0) and not (year mod 100 = 0) )
Upvotes: -1
Reputation: 52922
Dim d As New DateTime(2010, 4, 1)
Dim month As Integer = d.Month
While d.Month = month
Console.WriteLine(d.[Date])
d = d.AddDays(1)
End While
You can of course change how you output the Date to format it to your will.
Upvotes: -1
Reputation: 16616
http://authors.aspalliance.com/aspxtreme/sys/DateTimeClassDaysInMonth.aspx
Public Shared Function DaysInMonth ( _
ByVal year As Integer, _
ByVal month As Integer _
} As Integer
Upvotes: 0