Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zamiana cyfr arabskich na rzymskie
art
post 12.12.2005, 15:49:02
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 31.08.2003

Ostrzeżenie: (0%)
-----


Jak w php można szybko zamienić cyfry arabskie na rzymskie?
Go to the top of the page
+Quote Post
zuczek
post 12.12.2005, 16:26:30
Post #2





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 6.06.2005
Skąd: CBŚ

Ostrzeżenie: (0%)
-----


Nie wiem czy to pomoże ale znalazłem taki skrypt w JavaScript. Może Ci to pomoże.
http://shive2.avx.pl/files/js/18/18_74.zip


--------------------
"Kraj, który w technice nie postępuje, cofa się" - prof.S.Wł.Bryła
pajacyk.pl - a co Ci szkodzi kliknąć
SOS please someone help me...
Go to the top of the page
+Quote Post
maxib
post 17.12.2005, 03:23:23
Post #3





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 16.12.2005

Ostrzeżenie: (0%)
-----


W php to niestety nie wiem ale tu jest działający dobrze skrypcik:
Kod
<script language="JavaScript">


function Roman() {
var Num=document.NumF.Num.value;
var MvC=0
var MvC2=0
var MvX=0
var MvX2=0
var MvI=0
var MvI2=0
var Mvalue=""
var MV1=1000
var DV1=500
var MoreMs=0
var MoreV=""
//Start Big Loop!!
while(Num >= MV1) {
Num=Num - MV1
MoreMs++
}
if(MoreMs >= 4) {
while(MoreMs >= 1000) {
MoreMs=MoreMs - 1000
MoreV+="M"
}
if(MoreMs >= 900 && MoreMs < 1000) {
MoreMs=MoreMs - 900
MoreV+="CM"
}
while(MoreMs >= 500 && MoreMs < 1000) {
MoreMs=MoreMs - 500
MoreV+="D"
}
if(MoreMs >= 400 && MoreMs < 500) {
MoreMs=MoreMs - 400
MoreV+="CD"
}
while(MoreMs >= 100 && MoreMs < 500) {
MoreMs=MoreMs - 100
MoreV+="C"
}
if(MoreMs >= 90 && MoreMs < 100) {
MoreMs=MoreMs - 90
MoreV+="XC"
}
if(MoreMs >= 40 && MoreMs < 50) {
MoreMs=MoreMs - 40
MoreV+="XL"
}
while(MoreMs >= 50 && MoreMs < 100) {
MoreMs=MoreMs - 50
MoreV+="L"
}
if(MoreMs >= 9 && MoreMs < 10) {
MoreMs=MoreMs - 9
MoreV+="IX"
}
while(MoreMs >= 10 && MoreMs < 50) {
MoreMs=MoreMs - 10
MoreV+="X"
}
if(MoreMs == 9) {
MoreMs=MoreMs - 9
MoreV+="IX"
}
while(MoreMs >= 5 && MoreMs < 10) {
MoreMs=MoreMs - 5
MoreV+="V"
}
if(MoreMs == 4) {
MoreMs=MoreMs - 4
MoreV+="IV"
}
if(MoreMs == 3) {
MoreV+="I"
MoreMs--
}
if(MoreMs == 2) {
MoreV+="I"
MoreMs--
}
if(MoreMs == 1) {
MoreV+="I"
MoreMs--
}
}
if(MoreMs == 3) {
Mvalue+="M"
MoreMs--
}
if(MoreMs == 2) {
Mvalue+="M"
MoreMs--
}
if(MoreMs == 1) {
Mvalue+="M"
MoreMs--
}

while(Num < MV1 &&  Num >= DV1) {
if(Num >= 900) {
Mvalue+="CM"
Num=Num - 900
}
else if(Num < 900 && Num >= DV1) {
Num=Num - DV1
Mvalue+="D"
}
}
while(Num < 500 && Num >= 100) {
Num=Num - 100
MvC2++
}

if(MvC2 == 4) {
Mvalue+="CD"
}
if(MvC2 == 3) {
Mvalue+="C"
MvC2--
}
if(MvC2 == 2) {
Mvalue+="C"
MvC2--
}
if(MvC2 == 1) {
Mvalue+="C"
MvC2--
}


while(Num < 100 && Num >= 50) {
if(Num >= 90) {
Mvalue+="XC"
Num=Num - 90
}
else if(Num < 90 && Num >= 50) {
Num=Num - 50
Mvalue+="L"
}
}
while(Num < 50 && Num >= 10) {
Num=Num - 10
MvX2++
}
if(MvX2 == 4) {
Mvalue+="LX"
}
if(MvX2 == 3) {
Mvalue+="X"
MvX2--
}
if(MvX2 == 2) {
Mvalue+="X"
MvX2--
}
if(MvX2 == 1) {
Mvalue+="X"
MvX2--
}
if(Num == 9) {
Mvalue+="IX"
Num=Num - 9
}
while(Num < 10 && Num >= 5) {
if(Num <= 8 && Num >= 5) {
Num=Num - 5
Mvalue+="V"
}
}
while(Num < 5 && Num >= 1) {
Num=Num - 1
MvI2++
if(MvI2 == 4) {
Mvalue+="IV"
}
}
if(MvI2 == 3) {
Mvalue+="I"
MvI2--
}
if(MvI2 == 2) {
Mvalue+="I"
MvI2--
}
if(MvI2 == 1) {
MvI2--
Mvalue+="I"
}

//End Big Loop!
//Begin Smaller Loops!
while(Num >= 500 && Num < 1000 || Num == 500) {

if(Num >= 900) {
Mvalue+="CM"
Num=Num - 900
}
else if(Num < 900 && Num >= DV1) {
Num=Num - DV1
Mvalue+="D"
}}
while(Num >= 100 && Num < 500 || Num == 100) {
Num=Num - 100
MvC++
}
if(MvC == 4) {
Mvalue+="CD"
}
if(MvC == 3) {
Mvalue+="C"
MvC--
}
if(MvC == 2) {
Mvalue+="C"
MvC--
}
if(MvC == 1) {
Mvalue+="C"
MvC--
}

while(Num >= 50 && Num < 100 || Num == 50) {
if(Num >= 90) {
Mvalue+="XC"
Num=Num - 90
}
else if(Num < 90 && Num >= 50) {
Num=Num - 50
Mvalue+="L"
}
}
while(Num >= 10 && Num < 50 || Num == 10) {
Num=Num - 10
MvX++

}
if(MvX ==4) {
Mvalue+="LX"
}
if(MvX == 3) {
Mvalue+="X"
MvX--
}
if(MvX == 2) {
Mvalue+="X"
MvX--
}
if(MvX == 1) {
Mvalue+="X"
MvX--
}
if(Num == 9) {
Mvalue+="IX"
Num=Num - 9
}
while(Num >= 5 && Num < 10 || Num == 5) {
if(Num <= 8 && Num >= 5) {
Num=Num - 5
Mvalue+="V"
}
}
while(Num >= 1 && Num < 5 || Num == 1) {
Num=Num - 1
MvI++
if(MvI == 4) {
Mvalue+="IV"
}
}
if(MvI == 3) {
Mvalue+="I"
MvI--
}
if(MvI == 2) {
Mvalue+="I"
MvI--
}
if(MvI == 1) {
MvI--
Mvalue+="I"
}
//End Smaller Loops!
MoreV1.innerHTML=MoreV
MoreV2.innerHTML=Mvalue
}
//-->
</script><form name="NumF">
<input type="text" value="" name="Num"> <input type="button" value="Przelicz" onClick="Roman()"> <span id="MoreV1" style="text-decoration: overline"></span> <span id="MoreV2"></spaN>
</form>


Ten post edytował maxib 17.12.2005, 03:24:28
Go to the top of the page
+Quote Post
art
post 17.12.2005, 11:40:25
Post #4





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 31.08.2003

Ostrzeżenie: (0%)
-----


Dzieki serdedczne, jako ze tych cyfr rzymskich mialo byc tylko 20 od I do XX to zrobilem to w taki sposob ze stworzylem tablice z cyframi rzymskimi I, II, III itd nastepnie poslugujac sie nuemrami indexu wyswietlalem dla danego numeru przekazanego przez link odpowiedni element z tej tablicy ...

  1. <?php
  2.  
  3. $rzymskie=array('0','I','II','III','IV','V','VI','VII','VIII','IX','X','XI','XII','XIII','XIV','XV','XVI','XVII','XVIII','XIX','XX');
  4. $index=$_GET['dzielnica'];
  5. echo("DZIELNICA ".$rzymskie["$index"]."");
  6.  
  7. ?>
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.05.2025 - 10:01