Ordinal numbers replacement

Here’s a terse solution taken from Gareth on codegolf: ordinal = lambda n: “%d%s” % (n,”tsnrhtdd”[(n//10%10!=1)*(n%10<4)*n%10::4]) Works on any number: print([ordinal(n) for n in range(1,32)]) [‘1st’, ‘2nd’, ‘3rd’, ‘4th’, ‘5th’, ‘6th’, ‘7th’, ‘8th’, ‘9th’, ’10th’, ’11th’, ’12th’, ’13th’, ’14th’, ’15th’, ’16th’, ’17th’, ’18th’, ’19th’, ’20th’, ’21st’, ’22nd’, ’23rd’, ’24th’, ’25th’, ’26th’, ’27th’, ’28th’, ’29th’, ’30th’, … Read more

Is there an easy way to create ordinals in C#?

This page gives you a complete listing of all custom numerical formatting rules: Custom numeric format strings As you can see, there is nothing in there about ordinals, so it can’t be done using String.Format. However its not really that hard to write a function to do it. public static string AddOrdinal(int num) { if( … Read more