2011-03-08 144 views
5

是否有一种简单的方法显示日期的第一天,第二天,第三天......的日期部分?我怀疑没有办法通过自定义日期时间格式字符串(我会很高兴出错),所以有谁实现了这样做?格式化日期时间值日期值

+0

哪些语言和.NET版本您使用的? – Vishal 2011-03-08 17:45:00

+0

相关:http://stackoverflow.com/questions/20156/is-there-an-easy-way-to-create-ordinals-in-c – StriplingWarrior 2011-03-08 17:49:31

+0

@Misnomer - 目前使用.net 3.5。我将以任何.Net语言接受答案。 – detaylor 2011-03-08 17:53:00

回答

9

这是实现这一目标的核心逻辑:

string SuffixForDay(DateTime date) { 
    switch (date.Day) { 
     case 1: 
     case 21: 
     case 31: 
      return "st"; 
     case 2: 
     case 22: 
      return "nd"; 
     case 3: 
     case 23: 
      return "rd"; 
     default: 
      return "th"; 
    } 
} 
+0

+1 - 对于简单的代码..(和以前评论我的删除答案!) – Vishal 2011-03-08 18:10:25

0

您可以使用DateTime.Day属性来达到此目的。

+0

...并写代码动态地添加后缀:st,nd,rd,th(好像只有4个例子) – Cosmin 2011-03-08 17:50:37

+0

一天只返回整数值而不是后缀“st”,“rd”,“th “etc – detaylor 2011-03-08 17:51:14