![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarząd Postów: 1 512 Pomógł: 2 Dołączył: 22.04.2002 Skąd: Koszalin ![]() |
Witajcie,
Poszukuje skryptu, który zamienia daną liczbę na kwotę słownie 11 345.99 = jedenaście tysięcy trzysta czterdzieści pięć zł 99/100 Jeżeli gdzieś to widzieliści to proszęo link jeżeli nie będę musiał sam napisać ![]() Pozdrawiam -------------------- brak sygnaturki rowniez jest sygnaturką
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 100 Pomógł: 0 Dołączył: 25.01.2003 Skąd: mazury, wawa Ostrzeżenie: (0%) ![]() ![]() |
To znalazłem w necie :
http://www.pckurier.pl/archiwum/artykuly/s...listing.pas.asp - zrodlo w pascalu http://radek.karnet.pl/Number-SpellPolish-0.5.tar.gz - jak znasz perla Wiem, że to nie php, ale może na podstawie tego coś napiszesz i się podzielisz :wink: |
|
|
![]()
Post
#3
|
|
![]() Grupa: Przyjaciele php.pl Postów: 398 Pomógł: 0 Dołączył: -- Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Napisałem kiedyś funkcje w php do generowania zapisu słownego. Straszna to amatorka
![]() Kod function trzy($trzy,$spojnik,$wariant)
{ // opis: Podfunkcja dla slownie() generująca trójelementowe ciągi wyrazowe. $kwota=$trzy; $p=2; $sp=$spojnik; if ($wariant!="RW_1") {$spojnik="";}; if ($kwota{$p-1}=="1") { switch ($kwota{$p}) { case "0": $zdanie="dziesięć".$spojnik.$zdanie; break; case "1": $zdanie="jedenaście".$spojnik.$zdanie; break; case "2": $zdanie="dwanaście".$spojnik.$zdanie; break; case "3": $zdanie="trzynaście".$spojnik.$zdanie; break; case "4": $zdanie="czternaście".$spojnik.$zdanie; break; case "5": $zdanie="piętnaście".$spojnik.$zdanie; break; case "6": $zdanie="szesnaście".$spojnik.$zdanie; break; case "7": $zdanie="siedemnaście".$spojnik.$zdanie; break; case "8": $zdanie="osiemnaście".$spojnik.$zdanie; break; case "9": $zdanie="dziewiętnaście".$spojnik.$zdanie; break; }; } else { switch ($kwota{$p}) { case "1": if (!(($kwota{$p-1}=="0")&&($kwota{$p-2}=="0"))) {$zdanie="jeden".$spojnik.$zdanie;}; break; case "2": $zdanie="dwa".$spojnik.$zdanie; break; case "3": $zdanie="trzy".$spojnik.$zdanie; break; case "4": $zdanie="cztery".$spojnik.$zdanie; break; case "5": $zdanie="pięć".$spojnik.$zdanie; break; case "6": $zdanie="sześć".$spojnik.$zdanie; break; case "7": $zdanie="siedem".$spojnik.$zdanie; break; case "8": $zdanie="osiem".$spojnik.$zdanie; break; case "9": $zdanie="dziewięć".$spojnik.$zdanie; break; }; }; $p--; if (($kwota{$p}!="1")||($kwota{$p}!="0")) { switch ($kwota{$p}) { case "2": $zdanie="dwadzieścia".$spojnik.$zdanie; break; case "3": $zdanie="trzydzieści".$spojnik.$zdanie; break; case "4": $zdanie="czterdzieści".$spojnik.$zdanie; break; case "5": $zdanie="pięćdziesiąt".$spojnik.$zdanie; break; case "6": $zdanie="sześćdziesiąt".$spojnik.$zdanie; break; case "7": $zdanie="siedemdziesiąt".$spojnik.$zdanie; break; case "8": $zdanie="osiemdziesiąt".$spojnik.$zdanie; break; case "9": $zdanie="dziewięćdziesiąt".$spojnik.$zdanie; break; }; }; $p--; if ($kwota{$p}!="0") { switch ($kwota{$p}) { case "1": $zdanie="sto".$spojnik.$zdanie; break; case "2": $zdanie="dwieście".$spojnik.$zdanie; break; case "3": $zdanie="trzysta".$spojnik.$zdanie; break; case "4": $zdanie="czterysta".$spojnik.$zdanie; break; case "5": $zdanie="pięćset".$spojnik.$zdanie; break; case "6": $zdanie="sześćset".$spojnik.$zdanie; break; case "7": $zdanie="siedemset".$spojnik.$zdanie; break; case "8": $zdanie="osiemset".$spojnik.$zdanie; break; case "9": $zdanie="dziewięćset".$spojnik.$zdanie; break; }; }; if ($wariant=="RW_3") {return $zdanie.$sp;} else {return $zdanie;}; } //koniec podfunkcji trzy() function przypadek($dwa,$sam,$duet,$wyjatek) { // opis: Podfunkcja dla slownie() dobierająca przypadek. if (($dwa{0}==0)&&($dwa{1}==0)&&($dwa{2}==1)) { return $sam; } else { if ((($dwa{2}=="2")||($dwa{2}=="3")||($dwa{2}=="4"))&&($dwa{1}!="1")) { return $wyjatek; } else { if (!(($dwa{0}==0)&&($dwa{1}==0)&&($dwa{2}==0))) { return $duet; } else { return ""; }; }; }; } //koniec podfunkcji przypadek() function slownie($kwota,$waluta="PLN",$spojnik="",$wariant="RW_1") { // autor: Dragossani // opis: Fukcja generuje zapis słowny na podstawie zapisu liczbowego. // // zmienne wejściowe: // $kwota - wymagana - typ: integer (max. 15 cyfr) - domyślnie: [brak] // opis: liczba która ma zostać zamieniona na zapis słowny // $waluta - opcjonalna - typ: 'PLN'|'USD'|'GBP'|'DEM'|'EUR' - domyślnie: 'PLN' // opis: w jakiej walucie jest kwota // $spojnik - opcjonalna - typ: string - domyślnie: ' ' // opis: treść spójnika międzywyrazowego // $wariant - opcjonalna - typ: 'RW_1'|'RW_3' - domyślnie: 'RW_1' // opis: sposób odzielania wyrazów, RW_3 - trójkami, RW_1 - co każdą cyfrę settype($kwota,"string"); $len=strlen($kwota); $kwota=str_repeat("0",15-$len).$kwota; $len=strlen($kwota); $p=$len-1; switch ($waluta) { case "PLN": $waluta=przypadek($kwota{$p-2}.$kwota{$p-1}.$kwota{$p},"złoty","złotych","złote"); break; case "USD": $waluta=przypadek($kwota{$p-2}.$kwota{$p-1}.$kwota{$p},"dolar","dolarów","dolary"); break; case "GBP": $waluta=przypadek($kwota{$p-2}.$kwota{$p-1}.$kwota{$p},"funt","funtów","funty"); break; case "DEM": $waluta=przypadek($kwota{$p-2}.$kwota{$p-1}.$kwota{$p},"marka","marek","marki"); break; case "EUR": $waluta=przypadek($kwota{$p-2}.$kwota{$p-1}.$kwota{$p},"euro","euro","euro"); break; default: $waluta=przypadek($kwota{$p-2}.$kwota{$p-1}.$kwota{$p},"złoty","złotych","złote"); }; $zdanie=trzy($kwota{$p-2}.$kwota{$p-1}.$kwota{$p},$spojnik,$wariant).$zdanie; $p=$p-3; $zdanie=przypadek($kwota{$p-2}.$kwota{$p-1}.$kwota{$p},"tysiąc".$spojnik,"tysięcy".$spojnik,"tysiące".$spojnik).$zdanie; $zdanie=trzy($kwota{$p-2}.$kwota{$p-1}.$kwota{$p},$spojnik,$wariant).$zdanie; $p=$p-3; $zdanie=przypadek($kwota{$p-2}.$kwota{$p-1}.$kwota{$p},"milion".$spojnik,"milionów".$spojnik,"miliony".$spojnik).$zdanie; $zdanie=trzy($kwota{$p-2}.$kwota{$p-1}.$kwota{$p},$spojnik,$wariant).$zdanie; $p=$p-3; $zdanie=przypadek($kwota{$p-2}.$kwota{$p-1}.$kwota{$p},"miliard".$spojnik,"miliardów".$spojnik,"miliardy".$spojnik).$zdanie; $zdanie=trzy($kwota{$p-2}.$kwota{$p-1}.$kwota{$p},$spojnik,$wariant).$zdanie; $p=$p-3; $zdanie=przypadek($kwota{$p-2}.$kwota{$p-1}.$kwota{$p},"bilion".$spojnik,"bilionów".$spojnik,"biliony".$spojnik).$zdanie; $zdanie=trzy($kwota{$p-2}.$kwota{$p-1}.$kwota{$p},$spojnik,$wariant).$zdanie; $p=$len-1; if (trim($zdanie)=="") { if ($kwota{$p}=="1") { $zdanie="jeden".$spojnik; }; }; $zdanie=$zdanie.$waluta; return trim($zdanie); } //koniec funkcji slownie() Przykład użycia: Kod $waluta="USD";
$kwota=1234567890; $spojnik="*"; $wariant="RW_1"; print(number_format($kwota, 2, ",", " ").'<BR>'); print(slownie($kwota).'<BR>'); print('***'.slownie($kwota,$waluta,$spojnik,$wariant).'***'); -------------------- cease this long, long rest / wake and risk a foul weakness to live / when it all comes down / watch the smoke and bury the past again / sit and think what will come / raise your fears and cast them all away
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 17:54 |