Logo

Programming-Idioms

This language bar is your friend. Select your favorite languages!

Idiom #370 Determine the position in a sequence

Create the end-user text, s, specifying the position of integer value a.

For example, 1 is "1st", 2 is "2nd", 3 is "3rd", etc.

https://en.wikipedia.org/wiki/Sequence
https://en.wikipedia.org/wiki/Numeral_(linguistics)

  if ((a mod 100) in [10..20]) then
    s := 'th'
  else
  case (a mod 10) of
    1: s := 'st';
    2: s := 'nd';
    3: s := 'rd';
    otherwise
      s := 'th';
  end;
  s := a.ToString + s;
String s;
int x = a % 100;
if (x > 9 && x < 21) s = "th";
else s = switch (a % 10) {
    case 1 -> "st";
    case 2 -> "nd";
    case 3 -> "rd";
    default -> "th";
};
s = a + s;
if 9 < (a % 100) < 21: s = 'th'
else:
    match a % 10:
        case 1: s = 'st'
        case 2: s = 'nd'
        case 3: s = 'rd'
        case _: s = 'th'
s = str(a) + s

New implementation...
< >
reilas