ASP.NET中是否有标准格式字符串将1/2/3/…转换为1st/2nd/3rd…?
-
05-10-2019 - |
题
我在访问数据库中有一个整数,该数据库正在ASP.NET中显示。整数代表了竞争对手在体育赛事中获得的职位(第一,第二,第三等),我想用标准后缀像'st','nd','rd'这样的标准后缀显示,而不仅仅是裸体数字。
一个重要的限制是,这是用于指定不编写VB或C#代码的分配(实际上,它指示文件背后的代码要完全删除)。理想情况下,我想使用标准格式字符串(如果有),否则也许是一个自定义字符串(我没有使用格式字符串太多,那么优先级不足以将大量时间用于*,但是我很好奇关于是否有标准字符串)。
(*任务是今晚到期的,我学到了我无法负担得起的时间,即使他们非常生气,我也无法花时间在没有得到痕迹的东西上。)
解决方案
不幸的是,没有标准格式字符串可以执行此操作。但写作并不难:
public static string ToOrdinal(this int i, string format)
{
string suffix = "th";
switch (i%100)
{
case 11:
case 12:
case 13:
//deliberately empty
break;
default:
switch (i%10)
{
case 1:
suffix = "st";
break;
case 2:
suffix = "nd";
break;
case 3:
suffix = "rd";
break;
}
break;
}
return i.ToString(format) + suffix;
}
其他提示
你可以尝试这个
public static string FormatOrdinalNumber(int number)
{
if (number == 0) return "0";
switch (number % 100)
{
case 11:
case 12:
case 13:
return number + "th";
}
switch (number % 10)
{
case 1: return number + "st";
case 2: return number + "nd";
case 3: return number + "rd";
}
return number + "th";
}
不隶属于 StackOverflow