C # में महीने का नाम कैसे प्राप्त करें?


94

C # में महीने का नाम खोजने के बारे में कैसे जाना जाता है? मैं महीने पर एक बड़ा switchबयान या ifबयान नहीं लिखना चाहता हूं int। VB.Net में आप उपयोग कर सकते हैं MonthName(), लेकिन 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 () की आवश्यकता नहीं है।
रिचर्ड एंथनी हेन

5
या स्ट्रिंग.फोरमैट, वास्तव में। बस DateTime.Now.ToString ("MMMM") सरल है।
जॉन स्कीट

1
मैंने सुझाव दिया होगा कि जैसा भी हो, लेकिन आपके पास पहले से ही एक और जवाब है। Gortok की विधि स्वरूपण करने के लिए प्लेसहोल्डर्स के उपयोग को भी प्रदर्शित करती है, इसलिए मुझे लगता है कि यह एक अच्छा वैकल्पिक उदाहरण है।
रिचर्ड एंथनी हेन

7

अगर आप अभी मंथनाम का उपयोग करना चाहते हैं तो 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
यह ओपी के सवाल का जवाब नहीं देता है, क्योंकि उन्होंने कहा: "मैं वास्तव में एक विशाल स्विच स्टेटमेंट [...]" (जोर मेरा) नहीं लिखना चाहता हूं । उत्तर लिखने से पहले कृपया प्रश्नों को विस्तार से पढ़ें।
हार्न
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.