Melhor maneira de transformar um número inteiro em um nome de mês em c #?


123

Existe uma maneira melhor de transformar um número inteiro no nome do mês em .net?

Obviamente, posso girar um datetime para encadear e analisar o nome do mês a partir daí. Isso parece uma gigantesca perda de tempo.

Respostas:



20

Por que não usar apenas somedatetime.ToString("MMMM")?


1
Então, sempre que precisar transformar 1 em janeiro, preciso atualizar uma data com um dia e um ano arbitrários, para obter apenas janeiro?
DevelopingChris

1
Isso está correto, como um bônus, você pode tê-lo em qualquer idioma localizável você quer :)
leppie

20

Atualizado com o espaço para nome e o objeto corretos:

//This was wrong
//CultureInfo.DateTimeFormat.MonthNames[index];

//Correct but keep in mind CurrentInfo could be null
DateTimeFormatInfo.CurrentInfo.MonthNames[index];

1
Isso não funciona. Nick Berardi forneceu a resposta correta.
raven

1
a partir de agora vou tentar compilar as minhas respostas primeira
Ovidiu Pacurar

Percebendo que essa é uma pergunta antiga, ainda quero salientar que a resposta aceita fornecida por Nick Berandi é mais correta (pelo menos para a implementação da Microsoft - não tenho certeza sobre o Mono), porque a propriedade MonthNames sempre clona a matriz de nomes de meses, tornando a coisa toda um pouco menos eficiente.
AASoft

7

Você pode usar um método estático no Microsoft.VisualBasicespaço para nome:

string monthName = Microsoft.VisualBasic.DateAndTime.MonthName(monthInt, false);

6
DateTime dt = new DateTime(year, month, day);
Response.Write(day + "-" + dt.ToString("MMMM") + "-" + year);

Dessa forma, seu mês será exibido pelo nome, não pelo número inteiro.


2

Para obter um valor abreviado do mês, você pode usar Enum.Parse();

Enum.Parse(typeof(Month), "0");

Isso produzirá "Jan" como resultado.

Lembre-se de que este é um índice baseado em zero.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.