如何生成像“1st November"这样的日期格式?在c#中 [英] How Do I Produce a Date format like "1st November" in c#

查看:13
本文介绍了如何生成像“1st November"这样的日期格式?在c#中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我怎样才能得到下面提到的 c# 中的日期格式.

How can i get below mentions date format in c#.

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

  • For 1-Nov-2010 it should be display as : 1st November

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

For 30-Nov-2010 it should be display as : 30th November

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

Can we do using any date format or make a custom function that returns for 1 -> 'st', 2-> 'nd' 3-> 'rd', any date no -> 'th'.

推荐答案

下面的代码基于 answer 从整数生成序数:

The following code is based on that answer that generates an ordinal from an integer:

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

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

Than you can generate your output string:

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

这篇关于如何生成像“1st November"这样的日期格式?在c#中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆