2010-04-20 21 views
7

Esiste un metodo per calcolare il numero di giorni in un mese?Calcola i giorni del mese

+2

Certo, è 30,6 –

+2

In realtà, è più vicino a 30,436,875 mila, in media. Ci sono ((365 * 3 + 366) * 25-1) * 4 + 1, o 146.097 giorni in 400 anni. – paxdiablo

risposta

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) 

merito va a MSDN.

+0

Se stai cercando il numero di giorni, questo funziona. Se stai cercando un elenco di giorni, utilizza il mio esempio qui sotto. – 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 

È possibile del cambiamento, naturalmente, come si uscita alla Data di formattarlo alla tua volontà.

0

Utilizzare un array: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] Aggiungere uno a Feb se (anno mod 400 = 0) o ((anno mod 4 = 0) e non (anno mod 100 = 0))

-1

avete due soluzioni semplici:

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

o

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

dove m è il numero di mese e y è l'anno.

questa soluzione è la stessa di seguito, un array, ma l'array è un po 'mascherato in numeri magici.

0

Per ottenere il numero di giorni di mese in corso

Dim CurrentMonthDays As Int16 = DateTime.DaysInMonth(DateTime.Now.Year,DateTime.Now.Month) 
Problemi correlati