master at dreamphp dot com
28-Oct-2003 08:08
// kill-time. complicatedly source ... ^^;;;
function roma_to_number
($string) {
$len = strlen($string);
$sum = 0;
for
($i=0;$i<$len;$i++) {
switch ( $string{$i} ) {
case 'I':
// 1
$sum+=1;
break;
case 'V': // 5
if ( $string{$i-1} == 'I' ) $sum+=3;
else
$sum+=5;
break;
case 'X': // 10
if (
$string{$i-1} == 'I' ) $sum+=8;
else
$sum+=10;
break;
case 'L': // 50
if (
$string{$i-1} == 'X' ) $sum+=30;
else
$sum+=50;
break;
case 'C': // 100
if (
$string{$i-1} == 'X' ) $sum+=80;
else
$sum+=100;
break;
case 'D': // 500
if (
$string{$i-1} == 'C' ) $sum+=300;
else
$sum+=500;
break;
case 'M': // 1000
if (
$string{$i-1} == 'C' ) $sum+=800;
else
$sum+=1000;
break;
}
}
return
$sum;
}
// example
echo
roma_to_number('MCMXCVIII').'-'.roma_to_number('MMIII');
// output
1998-2003