如何在c#中生成类似"11月1日"的日期格式

Pan*_*wal 14 c# formatting datetime date-formatting

我怎样才能在c#中提到日期格式.

  • 对于2010年11月1日,它应显示为:11月1日

  • 对于2010年11月30日,它应显示为:11月30日

我们可以使用任何日期格式或制作一个自定义函数,返回1 - >'st',2->'nd'3 - >'rd',任何日期no - >'th'.

小智 32

以下代码基于从整数生成序数的答案:

public static string ToOrdinal(int number)
{
    switch(number % 100)
    {
        case 11:
        case 12:
        case 13:
            return number.ToString() + "th";
    }

    switch(number % 10)
    {
        case 1:
            return number.ToString() + "st";
        case 2:
            return number.ToString() + "nd";
        case 3:
            return number.ToString() + "rd";
        default:
            return number.ToString() + "th";
    }
}
Run Code Online (Sandbox Code Playgroud)

比你可以生成输出字符串:

public static string GenerateDateString(DateTime value)
{
    return string.Format(
        "{0} {1:MMMM}",
        ToOrdinal(value.Day),
        value);            
}
Run Code Online (Sandbox Code Playgroud)