Bagaimana cara mendapatkan nama bulan di C #?

Jawaban:

171

Anda dapat menggunakan CultureInfo untuk mendapatkan nama bulan. Anda bahkan bisa mendapatkan nama bulan pendek serta hal-hal menyenangkan lainnya.

Saya akan menyarankan Anda memasukkan ini ke dalam metode ekstensi, yang akan memungkinkan Anda untuk menulis lebih sedikit kode nanti. Bagaimanapun Anda dapat menerapkannya sesuka Anda.

Berikut adalah contoh cara melakukannya menggunakan metode ekstensi:

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

Semoga ini membantu!

CodeLikeBeaker
sumber
5
Boleh saya tambahkan bahwa ada InvariantInfoproperti yang bisa digunakan juga. Dan, menurut saya, berikut ini adalah format yang lebih sederhana / mudah dibaca untuk melakukan ini: DateTimeFormatInfo.InvariantInfo.GetAbbreviatedMonthName(...)atauDateTimeFormatInfo.CurrentInfo.GetAbbreviatedMonthName(...)
bsara
121

Gunakan penentu format "MMMM":

string month = dateTime.ToString("MMMM");
Jon Skeet
sumber
17
dengan asumsi Anda punya kencan. jika tidak:var month = new DateTime(1,i,1).ToString("MMMM");
Myster
14
string CurrentMonth = String.Format("{0:MMMM}", DateTime.Now)
George Stocker
sumber
Anda tidak membutuhkan ToString ().
Richard Anthony Hein
5
Atau String.Format, sebenarnya. Just DateTime.Now.ToString ("MMMM") lebih sederhana.
Jon Skeet
1
Saya akan menyarankan itu juga, tetapi Anda sudah memiliki itu sebagai jawaban lain. Metode Gortok juga mendemonstrasikan penggunaan placeholder untuk melakukan pemformatan, jadi menurut saya ini adalah contoh alternatif yang baik.
Richard Anthony Hein
7

Jika Anda hanya ingin menggunakan MonthName, rujuk Microsoft.VisualBasic dan ada di Microsoft.VisualBasic.DateAndTime

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

Misalkan tanggal Anda hari ini. Semoga ini bisa membantu Anda.

DateTime dt = DateTime.Today;

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

Console.WriteLine(thisMonth);
Binamra
sumber
-15
    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;
    }
Angel Alvarado Sagel
sumber
11
Ini tidak menjawab pertanyaan OP, karena mereka berkata: "Saya benar-benar tidak ingin menulis pernyataan saklar besar [...]" (penekanan saya). Harap baca pertanyaan secara detail sebelum menulis jawaban.
membunyikan klakson