Introduction
This little function is really simple, but comes in very handy. I have come across this issue many times and usually just dodge it when I can, but finally I had a project that insisted that I format some numbers this way, so alas, here I am.
Using The Code
This is just a basic function call. Send it any number greater than 0 and it will return the number formatted with a "st", "nd", "rd" or "th" after it. Sending it "" will cause an error message to be displayed.
dim iTestNumber
dim sNewNumber
dim x
sNewNum = iNum
if right(iNum, 2) = "11" or right(iNum, 2) = "12" or _
right(iNum, 2) = "13" then
sNewNum = sNewNum & "th"
else
iNum = right(iNum, 1)
select case iNum
case "1"
sNewNum = sNewNum & "st"
case "2"
sNewNum = sNewNum & "nd"
case "3"
sNewNum = sNewNum & "rd"
case ""
sNewNum = "error"
case else
sNewNum = sNewNum & "th"
end select
end if
if sNewNum = "error" then
response.write "There was an error with the date passed to the "<BR> response.write "function. The date must be an integer greater "<BR> response.write "than 0 and not equal to blank. Please use the "<BR> response.write "back button to fix the problem or contact customer "<BR> response.write "support. Thank you."
response.End
end if
buildnumber = sNewNum
end function
for x = 1 to 100
iTestNumber = x
sNewNumber = BuildNumber(iTestNumber)
response.write("This is the value sent to the function: "<BR> response.write iTestNumber & "<br>")
response.write("This is the value returned from the function: "<BR> response.write "sNewNumber & "<br><HR>")
next
response.end
Points of Interest
Watch out for the little catches such as "11", "12" and "13" all end in "th" rather than "st", "nd" and "rd". I think those are the only exceptions though. It should work for negative numbers, but I'm not sure why you would want to do that. But that's up to you.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.