Luca Romagnoli
Luca Romagnoli

Reputation: 12455

Calculate days of month

Is there any method for calculating the number of days in a month?

Upvotes: 9

Views: 27353

Answers (6)

Abdul Saboor
Abdul Saboor

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

olivecoder
olivecoder

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

Johnno Nolan
Johnno Nolan

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

Ron
Ron

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

NibblyPig
NibblyPig

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

Svisstack
Svisstack

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

Related Questions