C#で月の名前を取得する方法


回答:


167

CultureInfoを使用して月の名前を取得できます。短い月の名前やその他の楽しいものを取得することもできます。

これらを拡張メソッドに入れることをお勧めします。これにより、後で少ないコードを書くことができます。ただし、好きなように実装できます。

拡張メソッドを使用してそれを行う方法の例を次に示します。

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);
    }
}

お役に立てれば!


5
また、InvariantInfo使用できるプロパティがあることも付け加えておきます。そして、私の意見では、以下はこれを行うためのよりシンプルで読みやすい形式です:DateTimeFormatInfo.InvariantInfo.GetAbbreviatedMonthName(...)またはDateTimeFormatInfo.CurrentInfo.GetAbbreviatedMonthName(...)
bsara

119

「MMMM」フォーマット指定子を使用します。

string month = dateTime.ToString("MMMM");

17
あなたが日付を持っていると仮定します。そうでない場合:var month = new DateTime(1,i,1).ToString("MMMM");
ミスター

14
string CurrentMonth = String.Format("{0:MMMM}", DateTime.Now)

ToString()は必要ありません。
Richard Anthony Hein

5
または実際にはString.Format。DateTime.Now.ToString( "MMMM")の方が簡単です。
Jon Skeet、

1
私もそれを提案したでしょうが、あなたはすでに別の答えとしてそれを持っていました。Gortokの方法は、フォーマットを行うためのプレースホルダーの使用も示しているので、これは良い代替例だと思います。
Richard Anthony Hein

7

MonthNameを使用したいだけの場合は、Microsoft.VisualBasicを参照し、それがMicrosoft.VisualBasic.DateAndTimeにある

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

7

あなたの日付が今日であると仮定します。これがお役に立てば幸いです。

DateTime dt = DateTime.Today;

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

Console.WriteLine(thisMonth);

-13
    private string MonthName(int m)
    {
        string res;
        switch (m)
        {
            case 1:
                res="Ene";
                break;
            case 2:
                res = "Feb";
                break;
            case 3:
                res = "Mar";
                break;
            case 4:
                res = "Abr";
                break;
            case 5:
                res = "May";
                break;
            case 6:
                res = "Jun";
                break;
            case 7:
                res = "Jul";
                break;
            case 8:
                res = "Ago";
                break;
            case 9:
                res = "Sep";
                break;
            case 10:
                res = "Oct";
                break;
            case 11:
                res = "Nov";
                break;
            case 12:
                res = "Dic";
                break;
            default:
                res = "Nulo";
                break;
        }
        return res;
    }

10
「私は本当にん:彼らは言ったので、これは、OPの質問に答えていないではない(強調鉱山)、巨大なswitch文[...]を書きたいです」。回答を書く前に質問を詳しく読んでください。
2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.