2012-03-06 13 views
6

Necesito obtener el año en que utilizo el formato YYYY, y el mes MM, y así sucesivamente. Estoy buscando para ver si hay un formato para obtener el número de la semana del año.Número de semana de un año en dateformat

La fecha que estoy usando como ejemplo es 2008-03-09 16:05:07.000, y me gustaría saber el número de semana que es 11 en este caso. ¿Hay alguna manera de recuperar 11 mediante programación?

Respuesta

21

No hay formato que proporciona la WeekNumber, pero lo puede conseguir de esta manera fácilmente:

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

para responder a su comentario cómo obtener el trimestre de un año de undado:

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

Gracias por la respuesta. Sí, probé lo mismo que estaba disponible en una de las publicaciones. Ahora probé algo similar para GetDayofWeek de esta manera. System.Int32 dayofweek = ((Int32) CultureInfo.CurrentCulture.Calendar.GetDayOfWeek (dt)); pero cuando trato de reemplazar con la cadena que ingresé obtengo un error "La cadena de entrada no estaba en el formato correcto". Este es mi código para reemplazar: lformat = new stringbuilder (dt.lower()). Replace (" dw ", dayofweek.ToString()). Alguna sugerencia sobre esto También hay una forma de encontrar el número trimestral del año. – user1031746

+0

@ user1031746: edité mi respuesta para mostrarle cómo obtiene el trimestre del año. –

+0

Sí, gracias de nuevo. Estoy usando "string quarter = (((dt.Month - 1)/3) + 1) .ToString();" pero los tuyos parecen más simples que los míos. – user1031746

Cuestiones relacionadas