public string GetOrdinal(int Number)
{
//Adapted from VB.NET version posted at
http://www.developerfusion.com/show/3915/
//The Ordinal Number Function
//Karl Moore -
http://www.karlmoore.com
string suffix = String.Empty;
// Accepts an integer, returns the ordinal suffix
// Handles special case three digit numbers ending
// with 11, 12 or 13 - ie, 111th, 112th, 113th, 211th, et al
if(Number.ToString().Length > 2)
{
int intEndNum = Convert.ToInt32(Number.ToString().Substring(Number.ToString().Length - 2,2));
if(intEndNum >=11 && intEndNum <= 13)
switch(intEndNum)
{
case 11:
case 12:
case 13:
suffix = "th";
break;
}
}
if(Number >= 21)
{
//Handles 21st, 22nd, 23rd, et al
int Number21 = Convert.ToInt32(Number.ToString().Substring(Number.ToString().Length -1,1));
switch(Number21)
{
case 1:
suffix = "st";
break;
case 2:
suffix = "nd";
break;
case 3:
suffix = "rd";
break;
case 0:
suffix = "th";
break;
default:
for(int i = 4;i<=9;i++)
{
if(Number21 == i)
{
suffix = "th";
break;
}
else
suffix = String.Empty;
}
break;
}
}
else
{
switch(Number)
{
case 1:
suffix = "st";
break;
case 2:
suffix = "nd";
break;
case 3:
suffix = "rd";
break;
default:
for(int i = 4;i<=21;i++)
{
if(Number == i)
{
suffix = "th";
break;
}
else
suffix = String.Empty;
}
break;
}
}
return suffix;
}