我想知道 .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/