.net - .NET 中是否有一种简单的方法来获取数字的 "st"、 "nd"、 "rd"和 "t

我想知道 .NET 中是否缺少用于转换以下内容的方法或格式字符串:

   1 to 1st
   2 to 2nd
   3 to 3rd
   4 to 4th
  11 to 11th
 101 to 101st
 111 to 111th

This link有一个关于编写自己的函数所涉及的基本原则的坏例子,但我更好奇是否有我缺少的内置容量。

解决方案

Scott Hanselman 的答案是公认的,因为它直接回答了问题。

但是,有关解决方案,请参阅 this great answer .

最佳答案

这是一个比你想象的要简单得多的函数。尽管为此可能已经存在一个 .NET 函数,但以下函数(用 PHP 编写)可以完成这项工作。移植它应该不会太难。

function ordinal($num) {
    $ones = $num % 10;
    $tens = floor($num / 10) % 10;
    if ($tens == 1) {
        $suff = "th";
    } else {
        switch ($ones) {
            case 1 : $suff = "st"; break;
            case 2 : $suff = "nd"; break;
            case 3 : $suff = "rd"; break;
            default : $suff = "th";
        }
    }
    return $num . $suff;
}

关于.net - .NET 中是否有一种简单的方法来获取数字的 "st"、 "nd"、 "rd"和 "th"结尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69262/

相关文章:

php - 如何从 PHP 中的日期时间获取 AM/PM

visual-studio-2010 - 我可以让 Visual Studio 将花括号与 if 语

python - Python中用户友好的时间格式?

c# - 如何将 double 格式设置为四舍五入到最接近的美元的货币?

perl - 快速到达 YYYY-mm-dd HH :MM:SS in Perl

java - 转换给定时区的日期/时间 - java

c++ - 如何使用 ostream 在 c++ 中将 unsigned char 打印为十六进制?

c# - 在 C# 中格式化 double 输出

angularjs - 删除 AngularJS 货币过滤器小数/美分

java - 如何将 SimpleDateFormat 与日历一起使用?