From 14d57f70bbd4085466b57dbb062fc965f526b664 Mon Sep 17 00:00:00 2001 From: rolux Date: Wed, 20 Jun 2012 11:57:22 +0200 Subject: [PATCH] add Ox.formatRoman --- source/Ox/js/Format.js | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/source/Ox/js/Format.js b/source/Ox/js/Format.js index 2daa6cff..9294e8f7 100644 --- a/source/Ox/js/Format.js +++ b/source/Ox/js/Format.js @@ -631,6 +631,31 @@ Ox.formatPercent = function(number, total, decimals) { return Ox.formatNumber(number / total * 100, decimals) + '%' }; +/*@ +Ox.formatRoman Formats a number as a roman numeral + > Ox.formatRoman(1999) + 'MCMXCIX' + > Ox.formatRoman(2001) + 'MMI' + > Ox.formatRoman(0) + '' + > Ox.formatRoman(10000) + 'MMMMMMMMMM' +@*/ +Ox.formatRoman = function(number) { + var string = ''; + Ox.forEach({ + M: 1000, CM: 900, D: 500, CD: 400, C: 100, XC: 90, + L: 50, XL: 40, X: 10, IX: 9, V: 5, IV: 4, I: 1 + }, function(value, roman) { + while (number >= value) { + string += roman; + number -= value; + } + }); + return string; +}; + /*@ Ox.formatString Basic string formatting > Ox.formatString('{0}{1}', ['foo', 'bar'])