【发布时间】:2010-11-01 19:26:56
【问题描述】:
如何在 C# 中查找月份名称?我不想在int 月份写一个巨大的switch 声明或if 声明。在 VB.Net 中你可以使用MonthName(),但是 C# 呢?
【问题讨论】:
-
这能回答你的问题吗? Get Month name from month number
如何在 C# 中查找月份名称?我不想在int 月份写一个巨大的switch 声明或if 声明。在 VB.Net 中你可以使用MonthName(),但是 C# 呢?
【问题讨论】:
您可以使用 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);
}
}
希望这会有所帮助!
【讨论】:
InvariantInfo 属性也可以使用。而且,在我看来,以下是一种更简单/可读的格式:DateTimeFormatInfo.InvariantInfo.GetAbbreviatedMonthName(...) 或 DateTimeFormatInfo.CurrentInfo.GetAbbreviatedMonthName(...)
使用“MMMM”格式说明符:
string month = dateTime.ToString("MMMM");
【讨论】:
var month = new DateTime(1,i,1).ToString("MMMM");
string CurrentMonth = String.Format("{0:MMMM}", DateTime.Now)
【讨论】:
假设你的日期是今天。希望对您有所帮助。
DateTime dt = DateTime.Today;
string thisMonth= dt.ToString("MMMM");
Console.WriteLine(thisMonth);
【讨论】:
如果您只想使用 MonthName,请参考 Microsoft.VisualBasic,它位于 Microsoft.VisualBasic.DateAndTime 中
//eg. Get January
String monthName = Microsoft.VisualBasic.DateAndTime.MonthName(1);
【讨论】:
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;
}
【讨论】: