C # 'da ay adı nasıl alınır?


Yanıtlar:


173

Ay adını almak için CultureInfo'yu kullanabilirsiniz. Kısa ay adını ve diğer eğlenceli şeyleri bile alabilirsiniz.

Bunları daha sonra daha az kod yazmanıza izin verecek uzantı yöntemlerine koymanızı öneririm. Ancak istediğiniz gibi uygulayabilirsiniz.

Uzantı yöntemlerini kullanarak nasıl yapılacağına dair bir örnek:

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

Bu yardımcı olur umarım!


5
Orada olduğunu ekleyebilir miyim? InvariantInfoKullanılabilecek mülk olduğunu da ? Ve bence, bunu yapmak için aşağıdaki daha basit / okunabilir bir format: DateTimeFormatInfo.InvariantInfo.GetAbbreviatedMonthName(...)veyaDateTimeFormatInfo.CurrentInfo.GetAbbreviatedMonthName(...)
bsara

121

"MMMM" biçim belirleyicisini kullanın:

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

17
bir randevunuz olduğunu varsayarak. değilse:var month = new DateTime(1,i,1).ToString("MMMM");
Myster

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

ToString () 'e ihtiyacınız yok.
Richard Anthony Hein

5
Veya String.Format, aslında. Sadece DateTime.Now.ToString ("MMMM") daha basittir.
Jon Skeet

1
Ben de bunu önerirdim, ama bunu zaten başka bir yanıt olarak almıştın. Gortok'un yöntemi aynı zamanda biçimlendirmeyi yapmak için yer tutucuların kullanımını da gösteriyor, bu yüzden bunun iyi bir alternatif örnek olduğunu düşünüyorum.
Richard Anthony Hein

7

Yalnızca MonthName'i kullanmak istiyorsanız, Microsoft.VisualBasic'e başvurun ve Microsoft.VisualBasic.DateAndTime'da.

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

7

Randevunun bugün olduğunu varsayarsak. Umarım bu size yardımcı olur.

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
"Gerçekten mi: dediler çünkü bu, OP'nin soruya cevap vermez değil (vurgu benim) çok büyük bir switch deyimi [...] yazmak istiyorum". Lütfen bir cevap yazmadan önce soruları ayrıntılı olarak okuyun.
korna
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.