diff options
Diffstat (limited to 'iwidgets/generic/roman.itcl')
-rw-r--r-- | iwidgets/generic/roman.itcl | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/iwidgets/generic/roman.itcl b/iwidgets/generic/roman.itcl new file mode 100644 index 00000000000..263f574eb26 --- /dev/null +++ b/iwidgets/generic/roman.itcl @@ -0,0 +1,29 @@ +namespace eval ::iwidgets { + variable romand + set romand(val) {1000 900 500 400 100 90 50 40 10 9 5 4 1} + set romand(upper) { M CM D CD C XC L XL X IX V IV I} + set romand(lower) { m cm d cd c xc l xl x ix v iv i} + + proc roman2 {n {case upper}} { + variable romand + set r "" + foreach val $romand(val) sym $romand($case) { + while {$n >= $val} { + set r "$r$sym" + incr n -$val + } + } + return $r + } + + proc roman {n {case upper}} { + variable romand + set r "" + foreach val $romand(val) sym $romand($case) { + for {} {$n >= $val} {incr n -$val} { + set r "$r$sym" + } + } + return $r + } +} |