Einzelnen Beitrag anzeigen
Alt 10.08.06, 13:17   #14 (permalink)
CraHack
 
Registriert seit: 20.11.05
CraHack Leistung: Facit NTK
Likes: 0
Standard

Eine PHP funktion. Kann wahlweise verkürzen oder nicht.

PHP   
PHP-Code:
<?php

    
    
echo "1984 - ".Roemisch(1984,False)." - ".Roemisch(1984)."<br>";
    echo 
"2006 - ".Roemisch(2006,False)." - ".Roemisch(2006)."<br>";
    echo 
"5000 - ".Roemisch(5000,False)." - ".Roemisch(5000)."<br>";
    
    
    
    Function 
Roemisch($Wert,$Kurz=True)
    {
        
$Zahlen[0]=array(1        ,"I"    ,1);
        
$Zahlen[1]=array(5        ,"V"    ,5);
        
$Zahlen[2]=array(10        ,"X"    ,1);
        
$Zahlen[3]=array(50        ,"L"    ,5);
        
$Zahlen[4]=array(100    ,"C"    ,1);
        
$Zahlen[5]=array(500    ,"D"    ,5);
        
$Zahlen[6]=array(1000    ,"M"    ,1);
        
$Zahlen[7]=array(5000    ,"A"    ,5);
    
    
        
//Unverkürzt berechnen
        
For($Nummer=count($Zahlen)-1;$Nummer>-1;$Nummer--)
        {
            
            While(
$Wert>=$Zahlen[$Nummer][0])
            {
                
$Wert=$Wert-$Zahlen[$Nummer][0];
                
$Ausgabe=$Ausgabe.$Zahlen[$Nummer][1];
            }
            
            
        }
        
//Kürzen
        
IF($Kurz==True)
        {
            For(
$Nummer=count($Zahlen)-2;$Nummer>-1;$Nummer--)
            {    
                
// "9" berücksichtigen
                
IF($Zahlen[$Nummer][2]==5)
                {
                    
$Ausgabe=ereg_replace($Zahlen[$Nummer][1].$Zahlen[$Nummer-1][1].$Zahlen[$Nummer-1][1].$Zahlen[$Nummer-1][1].$Zahlen[$Nummer-1][1],$Zahlen[$Nummer-1][1].$Zahlen[$Nummer+1][1],$Ausgabe);
                }
                
                
// "4" berücksichtigen
                
$Ausgabe=ereg_replace($Zahlen[$Nummer][1].$Zahlen[$Nummer][1].$Zahlen[$Nummer][1].$Zahlen[$Nummer][1],$Zahlen[$Nummer][1].$Zahlen[$Nummer+1][1],$Ausgabe);
            }
        }
        return 
$Ausgabe;
    }

?>
CraHack ist offline   Mit Zitat antworten
 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61