2012-03-06 13 views
6

Devo ottenere l'anno in cui utilizzo il formato YYYY e il mese MM e così via. Sto cercando di vedere se esiste un formato per ottenere il numero della settimana dell'anno.Numero di settimana di un anno in formato data

La data che sto usando come esempio è 2008-03-09 16:05:07.000, e mi piacerebbe sapere il numero della settimana che è 11 in questo caso. C'è un modo per recuperare 11 a livello di programmazione?

risposta

21

Non c'è formato che fornisce il weeknumber, ma si può ottenere in questo modo facilmente:

System.Globalization.CultureInfo cul = System.Globalization.CultureInfo.CurrentCulture; 
int weekNum = cul.Calendar.GetWeekOfYear(
    DateTime.Now, 
    System.Globalization.CalendarWeekRule.FirstFourDayWeek, 
    DayOfWeek.Monday); 

Per rispondere a un commento come ottenere il trimestre di un dato DateTime:

int quarter = (int)((DateTime.Now.Month - 1)/3) + 1 
+0

Grazie per la risposta. Sì, ho provato la stessa cosa che era disponibile in uno dei post. Ora ho provato una cosa simile per GetDayofWeek in questo modo. System.Int32 dayofweek = ((Int32) CultureInfo.CurrentCulture.Calendar.GetDayOfWeek (dt)); ma quando provo a sostituire con la stringa che io entro sto ottenendo un errore "stringa di input non era in un formato corretto" .Questo è il mio codice per sostituire:. lformat = new StringBuilder (dt.lower()) Sostituire (" dw ", dayofweek.ToString()). Qualche suggerimento su questo. C'è anche un modo per trovare il numero trimestrale dell'anno. – user1031746

+0

@ user1031746: modificato la mia risposta per mostrarvi come ottenere il trimestre di un anno. –

+0

Sì grazie ancora. Sto usando "string quarter = (((dt.Month - 1)/3) + 1) .ToString();" ma i tuoi sembrano più semplici dei miei. – user1031746

Problemi correlati