# 1〜4999までの数字をローマ数字に変換する関数
function Number-ToRoman ($number) {
if (($number -ge 5000) -or ($number -le 0)) {
return "1から4999までの数字を入力してください"
}
$result = ""
# ローマ数字(name)と数字(value)を組み合わせた連想配列
$hash_roman_num = @{
"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
}
# 数字(value)の大きい順に、連想配列を並び替え
$hash_roman_num_sort = $hash_roman_num.GetEnumerator() |Sort-Object value -desc
foreach ($key_value in $hash_roman_num_sort) {
$count = [math]::floor($number / $key_value.value)
$number = $number % $key_value.value
[string]$result += ($key_value.key -as [string]) * $count
}
return $result
}