2010-04-20 21 views
7

¿Hay algún método para calcular el número de días en un mes?Calcular días del mes

+2

Claro, es 30,6 –

+2

En realidad, está más cerca de 30.436875, en promedio. Hay ((365 * 3 + 366) * 25-1) * 4 + 1, o 146,097 días en 400 años. – paxdiablo

Respuesta

17

Sí:

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) 

crédito va a MSDN.

+0

Si está buscando la cantidad de días, esto funciona. Si está buscando una lista de días, use mi ejemplo a continuación. – 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 

Puede del cambio de rumbo cómo la salida de la fecha para dar formato a su voluntad.

0

Utilice una matriz: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] Agregue uno a Feb si (año mod 400 = 0) o ((año mod 4 = 0) y no (año mod 100 = 0))

-1

tiene dos soluciones simples:

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

o

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

donde m es el número de meses e y es el año.

esta solución es la misma a continuación, una matriz, pero la matriz está un poco enmascarada en números mágicos.

0

para obtener el número de días del mes en curso

Dim CurrentMonthDays As Int16 = DateTime.DaysInMonth(DateTime.Now.Year,DateTime.Now.Month) 
Cuestiones relacionadas