Jak można znaleźć nazwę miesiąca w C #? Nie chcę pisać obszernego switch
zestawienia lub if
oświadczenia na temat miesiąca int
. W VB.Net można używać MonthName()
, ale co z C #?
Jak można znaleźć nazwę miesiąca w C #? Nie chcę pisać obszernego switch
zestawienia lub if
oświadczenia na temat miesiąca int
. W VB.Net można używać MonthName()
, ale co z C #?
Odpowiedzi:
Możesz użyć CultureInfo, aby uzyskać nazwę miesiąca. Możesz nawet uzyskać krótką nazwę miesiąca, a także inne fajne rzeczy.
Sugerowałbym, abyś umieścił je w metodach rozszerzających, które pozwolą ci później napisać mniej kodu. Możesz jednak wdrożyć, jak chcesz.
Oto przykład, jak to zrobić za pomocą metod rozszerzających:
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);
}
}
Mam nadzieję że to pomoże!
InvariantInfo
nieruchomość, z której można również skorzystać. Moim zdaniem następujący format jest prostszy / bardziej czytelny: DateTimeFormatInfo.InvariantInfo.GetAbbreviatedMonthName(...)
lubDateTimeFormatInfo.CurrentInfo.GetAbbreviatedMonthName(...)
string CurrentMonth = String.Format("{0:MMMM}", DateTime.Now)
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;
}