В ASP.NET есть строка стандартных форматов в ASP.NET для преобразования 1/2 / 3 / ... до 1-го / 2 и 3RD ...?
-
05-10-2019 - |
Вопрос
У меня есть целое число в базе данных доступа, которая отображается в ASP.NET. Целое число представляет позицию, достигаемую конкурентами в спортивном мероприятии (1-й, 2-й, 3-й и т. Д.), И я хотел бы показать его со стандартным суффиксом, таким как «ST», «ND», «RD» , а не просто голый номер.
Важным ограничением является то, что это для назначения, который указывает, что код NO 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";
}