Spoken Numbers
Here's a little utility function that adds an appropriate suffix after numbers to show them as they might be said:
/// <summary> /// Format a number as it would be said. /// </summary> /// <param name="aValue">Number to format.</param> /// <returns>Formatted number with suffix.</returns> public static string AsSaid(this int aValue) { string suffix = "th"; if (aValue % 10 == 1 && aValue != 11) { suffix = "st"; } else if (aValue % 10 == 2 && aValue != 12) { suffix = "nd"; } else if (aValue % 10 == 3 && aValue != 13) { suffix = "rd"; } return string.Format("{0}{1}", aValue, suffix); }
Best used for smallish positive numbers. Original use was to generate phrases like this:
- Twice a year on June 30th and December 31st.
- Yearly on February 28th.
Limitations
- Doesn't quite give what you'd expect for negative numbers
- Not intended to convert the whole number into words

Comments
Minor Improvement
You can extend the range of utility a little by adding % 100 to your second conditions. 313th vs 313rd