2010-04-20 73 views
7

Có phương pháp tính số ngày trong tháng không?Tính số ngày trong tháng

+2

Chắc chắn, đó là 30,6 –

+2

Trên thực tế, đó là gần gũi hơn với 30,436875, trên trung bình. Có ((365 * 3 + 366) * 25-1) * 4 + 1, hoặc 146,097 ngày trong 400 năm. – paxdiablo

Trả lời

17

Có:

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) 

tín dụng đi vào MSDN.

+0

Nếu bạn đang tìm kiếm số ngày, tính năng này hoạt động. Nếu bạn đang tìm kiếm một danh sách các ngày, sau đó sử dụng ví dụ của tôi dưới đây. – NibblyPig

0
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 

Bạn có thể thay đổi quá trình như thế nào bạn xuất ngày để định dạng nó theo ý muốn của bạn.

0

Sử dụng mảng: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] Thêm một đến tháng 2 nếu (năm mod 400 = 0) hoặc ((năm) mod 4 = 0) và không (năm mod 100 = 0))

-1

Bạn có hai giải pháp đơn giản:

5546>>m&1|30^(m==2)*2+(m==2&&y%4==0))) 

hoặc

(62648012>>m*2&3)+28+(m==2&&y%4==0))) 

nơi m là số tháng và y là năm.

giải pháp này giống như dưới đây, một mảng, nhưng mảng bit được che dấu bằng số ma thuật.

0

Để có được số ngày của tháng hiện tại

Dim CurrentMonthDays As Int16 = DateTime.DaysInMonth(DateTime.Now.Year,DateTime.Now.Month) 
Các vấn đề liên quan