Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,49 @@
|
|||
/* NetRexx */
|
||||
options replace format comments java crossref savelog symbols binary
|
||||
|
||||
/* 1990 2008 1666 */
|
||||
years = Rexx('MCMXC MMVIII MDCLXVI')
|
||||
|
||||
loop y_ = 1 to years.words
|
||||
Say years.word(y_).right(10) || ':' decode(years.word(y_))
|
||||
end y_
|
||||
|
||||
return
|
||||
|
||||
method decode(arg) public static returns int signals IllegalArgumentException
|
||||
|
||||
parse arg.upper roman .
|
||||
if roman.verify('MDCLXVI') \= 0 then signal IllegalArgumentException
|
||||
|
||||
-- always insert the value of the least significant numeral
|
||||
decnum = rchar(roman.substr(roman.length, 1))
|
||||
loop d_ = 1 to roman.length - 1
|
||||
if rchar(roman.substr(d_, 1)) < rchar(roman.substr(d_ + 1, 1)) then do
|
||||
-- Handle cases where numerals are not in descending order
|
||||
-- subtract the value of the numeral
|
||||
decnum = decnum - rchar(roman.substr(d_, 1))
|
||||
end
|
||||
else do
|
||||
-- Normal case
|
||||
-- add the value of the numeral
|
||||
decnum = decnum + rchar(roman.substr(d_, 1))
|
||||
end
|
||||
end d_
|
||||
|
||||
return decnum
|
||||
|
||||
method rchar(arg) public static returns int
|
||||
|
||||
parse arg.upper ch +1 .
|
||||
select case ch
|
||||
when 'M' then digit = 1000
|
||||
when 'D' then digit = 500
|
||||
when 'C' then digit = 100
|
||||
when 'L' then digit = 50
|
||||
when 'X' then digit = 10
|
||||
when 'V' then digit = 5
|
||||
when 'I' then digit = 1
|
||||
otherwise digit = 0
|
||||
end
|
||||
|
||||
return digit
|
||||
Loading…
Add table
Add a link
Reference in a new issue