note 36934 deleted from funcref by nlopess
| From: | nlopess@php.net | Date: | Thu, 29 Apr 2004 14:25:47 +0000 |
| Subject: | note 36934 deleted from funcref by nlopess | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-69004@lists.php.net to get a copy of this message | ||
Note Submitter: master@dreamphp.com
----
// 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