2011-11-25 19 views
6

Duplicar posible:
GetMonthName: Valid values are between 1 and 13, inclusive. Why?¿Por qué DateTimeInfo.MonthNames devuelve un miembro 13?

El siguiente código:

DateTimeFormatInfo datetimeinfo = new CultureInfo("en-GB", false).DateTimeFormat; 
string[] months = datetimeinfo.MonthNames; 

declaraciones de 13 miembros, siendo 0 el 13 de enero y de ser una cadena vacía.

¿Por qué es esto?

No es gran cosa, ya que puedo eliminar el último miembro, pero me preguntaba si había un punto para ello.

+1

Aparentemente para admitir calendarios basados ​​en meses lunares, consulte aquí: http://stackoverflow.com/questions/5991766/getmonthname-valid-values-are-between-1-and-13-inclusive-why –

Respuesta

6

Algunos calendarios, especialmente el Hebrew, pueden tener 13 meses. Esto tiende a ser en calendarios lunisolares que usan meses lunares, y luego agrega un mes extra cada pocos años para evitar el comienzo del año que cambia demasiado del año solar.

+0

Pero para el La cultura hebrea, 'MonthNames' también devuelve 12 meses" reales "y uno vacío ... –

+0

@Thomas Levesque esto puede ser simplemente una" característica "de la implementación de MS. Por ejemplo, la función que convierte una cadena en mayúscula (great britain => Great Britain) funciona de la misma manera para el idioma ruso, mientras que en ruso es correcto capitalizar solo la primera letra de la primera palabra (great britain => Great Gran Bretaña). –

Cuestiones relacionadas