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!


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

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)

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

7

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

DateTime dt = DateTime.Today;

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

Console.WriteLine(thisMonth);

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

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.