Advertisement
Atheuz

ordinals

Jan 13th, 2012
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.10 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2.  
  3. # Filename      ordinal_numbers.py
  4. # Author        xxx <xxx@xxx.xxx>
  5. # First edited  13-01-2011 14:17
  6. # Last edited   13-01-2011 14:30
  7.  
  8. import argparse
  9.  
  10. ordinals = {0:"th", 1:"st", 2:"nd", 3:"rd", 4:"th",
  11.             5:"th", 6:"th", 7:"th", 8:"th", 9:"th"}
  12.  
  13. def get_ten_digit(n):
  14.     return (n / 10) % 10
  15.  
  16. def get_one_digit(n):
  17.     return n % 10
  18.  
  19. def convert_to_ordinal(n):
  20.     negative = False
  21.     if n < 0:
  22.         n = abs(n)
  23.         negative = True
  24.     if get_ten_digit(n) == 1:
  25.         if negative:
  26.             return "%dth" % (-n)
  27.         else:
  28.             return "%dth" % n
  29.     elif get_ten_digit(n) != 1:
  30.         if negative:
  31.             return "%d%s" % (-n, ordinals[get_one_digit(n)])
  32.         else:
  33.             return "%d%s" % (n, ordinals[get_one_digit(n)])
  34.  
  35. def main():
  36.     parser = argparse.ArgumentParser()
  37.     parser.add_argument('number', metavar='N', type=int, default=None,
  38.             help='Set number to convert to ordinal')
  39.     args = parser.parse_args()
  40.  
  41.     print convert_to_ordinal(args.number)
  42.  
  43. if __name__ == '__main__':
  44.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement