web-dev-qa-db-fra.com

Comment obtenir le nom du mois en C #?

Comment fait-on pour trouver le nom du mois en C #? Je ne veux pas écrire une énorme déclaration switch ou if le mois int. En VB.Net, vous pouvez utiliser MonthName(), mais qu'en est-il de C #?

86
Abdul Gangra

Vous pouvez utiliser CultureInfo pour obtenir le nom du mois. Vous pouvez même obtenir le nom du mois court ainsi que d’autres choses amusantes.

Je suggère que vous les intégriez dans des méthodes d'extension, ce qui vous permettra d'écrire moins de code ultérieurement. Cependant, vous pouvez implémenter comme bon vous semble.

Voici un exemple de la façon de le faire en utilisant des méthodes d'extension:

using System;
using System.Globalization;

class Program
{
    static void Main()
    {

        Console.WriteLine(DateTime.Now.ToMonthName());
        Console.WriteLine(DateTime.Now.ToShortMonthName());
        Console.Read();
    }
}

static class DateTimeExtensions
{
    public static string ToMonthName(this DateTime dateTime)
    {
        return CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(dateTime.Month);
    }

    public static string ToShortMonthName(this DateTime dateTime)
    {
        return CultureInfo.CurrentCulture.DateTimeFormat.GetAbbreviatedMonthName(dateTime.Month);
    }
}

J'espère que cela t'aides!

157
CodeLikeBeaker

Utilisez le spécificateur de format "MMMM":

string month = dateTime.ToString("MMMM");
114
Jon Skeet
string CurrentMonth = String.Format("{0:MMMM}", DateTime.Now)
11
George Stocker

En supposant que votre date est aujourd'hui. J'espère que cela vous aide.

DateTime dt = DateTime.Today;

string thisMonth= dt.ToString("MMMM");

Console.WriteLine(thisMonth);
7
Binamra

Si vous voulez juste utiliser MonthName, référencez alors Microsoft.VisualBasic et c'est dans Microsoft.VisualBasic.DateAndTime

//eg. Get January
String monthName = Microsoft.VisualBasic.DateAndTime.MonthName(1);
7
RobV