by NeatNit » Sun May 26, 2019 8:59 pm
To be honest, as a programmer, code for choosing the correct ordinal suffix is one of the most annoying things to write. It's not particularly difficult or anything like that, it's just a lot of ugly if statements. And needles to say, it's language-dependant (i.e. English only), so if you're making a program that supports multiple languages it can get a lot messier.
Just look at the rules for it in plain English (in the order I find intuitive, not in the order they would appear in code):
1. If the last digit is 1, it's "st".
2. If the last digit is 2, it's "nd".
3. if the last digit is 3, it's "rd".
4. If the last digit is anything else, it's "th".
5. If the second-to-last digit is 1, it's "th" even if the last digit is 1, 2 or 3.
It's just gross. The code would be full of magic numbers (and strings for that matter), and requires a ridiculous amount of code and edge case compared to the relatively trivial goal - just two lousy letters.
To be honest, as a programmer, code for choosing the correct ordinal suffix is one of the most annoying things to write. It's not particularly difficult or anything like that, it's just a lot of ugly if statements. And needles to say, it's language-dependant (i.e. English only), so if you're making a program that supports multiple languages it can get a lot messier.
Just look at the rules for it in plain English (in the order I find intuitive, [i]not[/i] in the order they would appear in code):
1. If the last digit is 1, it's "st".
2. If the last digit is 2, it's "nd".
3. if the last digit is 3, it's "rd".
4. If the last digit is anything else, it's "th".
5. If the second-to-last digit is 1, it's "th" even if the last digit is 1, 2 or 3.
It's just gross. The code would be full of magic numbers (and strings for that matter), and requires a ridiculous amount of code and edge case compared to the relatively trivial goal - just two lousy letters.