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

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

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

10
이것은 OP의 질문에 대답하지 않습니다. 왜냐하면 그들은 "나는 정말로 거대한 switch 문을 작성하고 싶지 않습니다 . [...]"(내 강조). 답변을 작성하기 전에 질문을 자세히 읽으십시오.
honk
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.