42 votos

¿Cómo hago la Lista de Nombres de los Meses, por ejemplo, para un combo?

En este momento estoy creando un DateTime para cada mes y formato para incluir sólo el mes. Hay otra o una mejor manera de hacer esto?

104voto

Yona Puntos 5205

Usted puede utilizar el DateTimeFormatInfo para obtener esa información:

// Will return January
string name = DateTimeFormatInfo.CurrentInfo.GetMonthName(1);

o para obtener todos los nombres de:

string[] names = DateTimeFormatInfo.CurrentInfo.MonthNames;

También puede crear una instancia de una nueva DateTimeFormatInfo basado en un CultureInfo con DateTimeFormatInfo.GetInstance o puede utilizar la actual cultura de la CultureInfo.DateTimeFormat de la propiedad.

Tenga en cuenta que los calendarios .De apoyo en red de hasta 13 meses, así conseguirás un extra de cadena vacía al final de los calendarios con sólo 12 meses (tales como los que se encuentran en en-US o francia por ejemplo).

15voto

Rohan West Puntos 5914

Puede utilizar el siguiente para devolver un array de string que contiene los nombres de los meses

System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.MonthNames

12voto

Dylan Beattie Puntos 23222

Están definidos como una matriz en la Globalización de los espacios de nombres.

using System.Globalization;

for (int i = 0; i < 12; i++) {
   Console.WriteLine(CultureInfo.CurrentUICulture.DateTimeFormat.MonthNames[i]);
}

9voto

mmmeff Puntos 174

Este método le permitirá solicitar una lista de claves los pares de valores de meses para su int contrapartes. Generamos con una sola línea mediante Enumerable Rangos y LINQ. ¡Hurra, LINQ código de golf!

var months = Enumerable.Range(1, 12).Select(i => new { I = i, M = DateTimeFormatInfo.CurrentInfo.GetMonthName(i) });

Para aplicarlo a un ASP lista desplegable:

// <asp:DropDownList runat="server" ID="ddlMonths" />
ddlMonths.DataSource = months;
ddlMonths.DataTextField = "M";
ddlMonths.DataValueField = "I";
ddlMonths.DataBind();

5voto

Zachary Yates Puntos 4952

Tratar de enumerar los nombres de los meses:

for( int i = 1; i <= 12; i++ ){
  combo.Items.Add(CultureInfo.CurrentCulture.DateTimeFormat.MonthNames[i]);
}

Es en el Sistema.La globalización del espacio de nombres.

Espero que ayude!

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X