Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Automatyczne Generowanie Liczb Słownie (?)
karolski
post
Post #1





Grupa: Zarejestrowani
Postów: 199
Pomógł: 0
Dołączył: 12.02.2004
Skąd: Czymiasto

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


Witam,

Ciężko wyjaśnić w temacie co ja cche ale mam problem z sytulacja po wpisaniu wartości (liczby np. 49) zeby mozna bylo automatycznie wygenerowac tą liczbe słownie to jest dziwne ale mi potrzebne czy ktos moze powiedziec jak cos takiego zrobic.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
rolling_stone
post
Post #2





Grupa: Zarejestrowani
Postów: 46
Pomógł: 2
Dołączył: 20.08.2004
Skąd: Warszawa Grochów

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


Na przyklad tak (może długo, ale działa):

  1. <?php
  2.      function Nazwa_Liczby( $liczba, $typ )
  3.      {
  4.       $tablica[0] = &#092;"zer\";
  5.       $tablica[1] = &#092;"jed\";
  6.       $tablica[2] = &#092;"dwa\";
  7.       $tablica[3] = &#092;"trz\";
  8.       $tablica[4] = &#092;"czt\";
  9.       $tablica[5] = &#092;"pie\";
  10.       $tablica[6] = &#092;"sze\";
  11.       $tablica[7] = &#092;"sie\";
  12.       $tablica[8] = &#092;"osi\";
  13.       $tablica[9] = &#092;"dzi\";
  14.       $tablica[10] = &#092;"dziesięć\";
  15.       $tablica[20] = &#092;"dwadzieścia\";
  16.       $tablica[30] = &#092;"trzydzieści\";
  17.       $tablica[40] = &#092;"czterdzieści\";
  18.       $tablica[50] = &#092;"pięćdziesiąt\";
  19.       $tablica[60] = &#092;"sześćdziesiąt\";
  20.       $tablica[70] = &#092;"siedemdziesiąt\";
  21.       $tablica[80] = &#092;"osiemdziesiąt\";
  22.       $tablica[90] = &#092;"dziewięćdziesiąt\";
  23.       $tablica_pelne[0] = &#092;"zero\";
  24.       $tablica_pelne[1] = &#092;"jeden\";
  25.       $tablica_pelne[2] = &#092;"dwa\";
  26.       $tablica_pelne[3] = &#092;"trzy\";
  27.       $tablica_pelne[4] = &#092;"cztery\";
  28.       $tablica_pelne[5] = &#092;"pięć\";
  29.       $tablica_pelne[6] = &#092;"sześć\";
  30.       $tablica_pelne[7] = &#092;"siedem\";
  31.       $tablica_pelne[8] = &#092;"osiem\";
  32.       $tablica_pelne[9] = &#092;"dziewięć\";
  33.       $tablica_pelne[11] = &#092;"jedenaście\";
  34.       $tablica_pelne[12] = &#092;"dwanaście\";
  35.       $tablica_pelne[13] = &#092;"trzynaście\";
  36.       $tablica_pelne[14] = &#092;"czternaście\";
  37.       $tablica_pelne[15] = &#092;"piętnaście\";
  38.       $tablica_pelne[16] = &#092;"szesnaście\";
  39.       $tablica_pelne[17] = &#092;"siedemnaście\";
  40.       $tablica_pelne[18] = &#092;"osiemnaście\";
  41.       $tablica_pelne[19] = &#092;"dziewiętnaście\";
  42.       $tablica_pelne[10] = &#092;"dziesięć\";
  43.       $tablica_pelne[20] = &#092;"dwadzieścia\";
  44.       $tablica_pelne[30] = &#092;"trzydzieści\";
  45.       $tablica_pelne[40] = &#092;"czterdzieści\";
  46.       $tablica_pelne[50] = &#092;"pięćdziesiąt\";
  47.       $tablica_pelne[60] = &#092;"sześćdziesiąt\";
  48.       $tablica_pelne[70] = &#092;"siedemdziesiąt\";
  49.       $tablica_pelne[80] = &#092;"osiemdziesiąt\";
  50.       $tablica_pelne[90] = &#092;"dziewięćdziesiąt\";
  51.       $tablica_pelne[100] = &#092;"sto\";
  52.       $tablica_pelne[200] = &#092;"dwieście\";
  53.       $tablica_pelne[300] = &#092;"trzysta\";
  54.       $tablica_pelne[400] = &#092;"czterysta\";
  55.       $tablica_pelne[500] = &#092;"pięćset\";
  56.       $tablica_pelne[600] = &#092;"sześćset\";
  57.       $tablica_pelne[700] = &#092;"siedemset\";
  58.       $tablica_pelne[800] = &#092;"osiemset\";
  59.       $tablica_pelne[900] = &#092;"dziewięćset\";
  60.       if($typ == 0)
  61.       {
  62.        return $tablica[$liczba];
  63.       }
  64.       else
  65.       {
  66.        return $tablica_pelne[$liczba];
  67.       }
  68.      }
  69.      function Kwota_Slownie( $kwota, $typ )
  70.      {
  71.  
  72.       $kwota_slownie = &#092;"\";
  73.       $kwota_kopia = $kwota;
  74.       $setne = 0;
  75.       $dziesietne = 0;
  76.       $grosze_d = 0;
  77.       $grosze_j = 0;
  78.       $grosze_txt = &#092;"\";
  79.       // zapamiętujemy część setną i dziesiętną
  80.       while($kwota_kopia >=)
  81.       {
  82.        $kwota_kopia--;
  83.        $dziesietne++;
  84.       }
  85.       $setne = sprintf(&#092;"%00.0f\",$kwota_kopia * 100);
  86.       $setne_kopia = $setne;
  87.       while($setne_kopia >= 10)
  88.       {
  89.        $grosze_d++;
  90.        $setne_kopia = $setne_kopia - 10;
  91.       }
  92.       $grosze_j = $setne_kopia;
  93.       if(($grosze_j == 0 || $grosze_j > 4) && ($grosze_d == 1))
  94.       {
  95.        $grosze_napis = &#092;"groszy\";
  96.       }
  97.       else if($grosze_j == 1 || $grosze_d == 0)
  98.       {
  99.        $grosze_napis = &#092;"grosz\";
  100.       }
  101.       else
  102.       {
  103.        $grosze_napis = &#092;"grosze\";
  104.       }
  105.       $grosze_txt = Nazwa_Liczby($grosze_d,0) . &#092;"*\" . Nazwa_Liczby($grosze_j,0) . \"*gr\";
  106.       //----------------------------------------------------
  107.       $dziesietne_kopia = $dziesietne;
  108.       while($dziesietne > 10)
  109.       {
  110.        $dziesietne = $dziesietne - 10;
  111.       }
  112.       $dziesietne_j = $dziesietne;
  113.       if($dziesietne_j == 10)
  114.       {
  115.        $dziesietne_j = 0;
  116.       }
  117.       $dziesietne = $dziesietne_kopia / 10;
  118.       while($dziesietne > 10)
  119.       {
  120.        $dziesietne = $dziesietne - 10;
  121.       }
  122.       $dziesietne_mniej = sprintf(&#092;"%01.0f\",$dziesietne);
  123.       if($dziesietne_mniej > $dziesietne)
  124.       {
  125.        $dziesietne = sprintf(&#092;"%01.0f\",$dziesietne) - 1;
  126.       }
  127.       else
  128.       {
  129.        $dziesietne = sprintf(&#092;"%01.0f\",$dziesietne);
  130.       }
  131.       $dziesietne_d = $dziesietne;
  132.       //
  133.       $dziesietne = $dziesietne_kopia / 100;
  134.       while($dziesietne > 10)
  135.       {
  136.        $dziesietne = $dziesietne - 10;
  137.       }
  138.       $dziesietne_mniej = sprintf(&#092;"%01.0f\",$dziesietne);
  139.       if($dziesietne_mniej > $dziesietne)
  140.       {
  141.        $dziesietne = sprintf(&#092;"%01.0f\",$dziesietne) - 1;
  142.       }
  143.       else
  144.       {
  145.        $dziesietne = sprintf(&#092;"%01.0f\",$dziesietne);
  146.       }
  147.       $dziesietne_s = $dziesietne;
  148.       //
  149.       $dziesietne = $dziesietne_kopia / 1000;
  150.       $dziesietne_form = sprintf(&#092;"%01.0f\",$dziesietne);
  151.       if($dziesietne_form > $dziesietne)
  152.       {
  153.        $dziesietne_ty = $dziesietne_form - 1;
  154.       }
  155.       else
  156.       {
  157.        $dziesietne_ty = $dziesietne_form;
  158.       }
  159.       //
  160.       $dziesietne_t_txt = Nazwa_Liczby($dziesietne_ty,0);
  161.       $dziesietne_s_txt = Nazwa_Liczby($dziesietne_s,0);
  162.       $dziesietne_d_txt = Nazwa_Liczby($dziesietne_d,0);
  163.       $dziesietne_j_txt = Nazwa_Liczby($dziesietne_j,0);
  164.       if(empty($dziesietne_t_txt) || $dziesietne_t_txt == &#092;"zer\")
  165.       {
  166.        if(empty($dziesietne_s_txt) || $dziesietne_s_txt == &#092;"zer\")
  167.        {
  168.         if(empty($dziesietne_d_txt) || $dziesietne_d_txt == &#092;"zer\")
  169.         {
  170.          $dziesietne_txt = &#092;"$dziesietne_j_txt*zł*\";
  171.         }
  172.         else
  173.         {
  174.          $dziesietne_txt = &#092;"$dziesietne_d_txt*$dziesietne_j_txt*zł*\";
  175.         }
  176.        }
  177.        else
  178.        {
  179.         $dziesietne_txt = &#092;"$dziesietne_s_txt*$dziesietne_d_txt*$dziesietne_j_txt*zł*\";
  180.        }
  181.       }
  182.       else
  183.       {
  184.        $dziesietne_txt = &#092;"$dziesietne_t_txt*$dziesietne_s_txt*$dziesietne_d_txt*$dziesietne_j_txt*zł*
    \";
  185.       }
  186.       /* $dziesietne_txt = strtoupper($dziesietne_txt);
  187.       $grosze_txt = strtoupper($grosze_txt); */
  188.       if($typ == 0)
  189.       {
  190.        return &#092;"$dziesietne_txt$grosze_txt\";
  191.       }
  192.       else
  193.       {
  194.        if($grosze_d == 0)
  195.        {
  196.         $grosze_txt = Nazwa_Liczby($grosze_j , 1);
  197.         if($grosze_j == 1)
  198.         {
  199.          $gr_txt = &#092;"grosz\";
  200.         }
  201.         else if($grosze_j >= 2 && $grosze_j <= 4)
  202.         {
  203.          $gr_txt = &#092;"grosze\";
  204.         }
  205.         else
  206.         {
  207.          $gr_txt = &#092;"groszy\";
  208.         }
  209.        }
  210.        else if($grosze_d == 1)
  211.        {
  212.         $grosze_txt = Nazwa_Liczby($grosze_d*10+$grosze_j,1);
  213.         $gr_txt = &#092;"groszy\";
  214.        }
  215.        else
  216.        {
  217.         $grosze_txt = Nazwa_Liczby($grosze_d*10,1);
  218.         if($grosze_j != 0)
  219.         {
  220.          $grosze_txt .= &#092;" \" . Nazwa_Liczby($grosze_j,1);
  221.         }
  222.         if($grosze_j >= 2 && $grosze_j <= 4)
  223.         {
  224.          $gr_txt = &#092;"grosze\";
  225.         }
  226.         else
  227.         {
  228.          $gr_txt = &#092;"groszy\";
  229.         }
  230.        }
  231.        if($dziesietne_d == 0)
  232.        {
  233.         $dziesietne_txt = Nazwa_Liczby($dziesietne_j , 1);
  234.         if($dziesietne_j == 1)
  235.         {
  236.          $dz_txt = &#092;"złoty\";
  237.         }
  238.         else if($dziesietne_j >= 2 && $dziesietne_j <= 4)
  239.         {
  240.          $dz_txt = &#092;"złote\";
  241.         }
  242.         else
  243.         {
  244.          $dz_txt = &#092;"złotych\";
  245.         }
  246.        }
  247.        else if($dziesietne_d == 1)
  248.        {
  249.         $dziesietne_txt = Nazwa_Liczby($dziesietne_d*10+$dziesietne_j,1);
  250.         $dz_txt = &#092;"złotych\";
  251.        }
  252.        else
  253.        {
  254.         $dziesietne_txt = Nazwa_Liczby($dziesietne_d*10,1);
  255.         if($dziesietne_j != 0)
  256.         {
  257.          $dziesietne_txt .= &#092;" \" . Nazwa_Liczby($dziesietne_j,1);
  258.         }
  259.         if($dziesietne_j >= 2 && $dziesietne_j <= 4)
  260.         {
  261.          $dz_txt = &#092;"złote\";
  262.         }
  263.         else
  264.         {
  265.          $dz_txt = &#092;"złotych\";
  266.         }
  267.        }
  268.        if($dziesietne_s != 0 || !empty($dziesietne_s))
  269.        {
  270.         $setne_txt = Nazwa_Liczby($dziesietne_s*100,1) . &#092;" \";
  271.        }
  272.        return &#092;"$setne_txt$dziesietne_txt $dz_txt, $grosze_txt $gr_txt\";
  273.       }
  274.      }
  275. ?>



1. to jest skrypt dla kwot, ale można go zmodyfikować
2. możesz includować ten plik do skryptu php, a potem wywołać funkcję np. tak:

  1. <?php
  2. Kwota_Slownie(25.64,0); // zwróci \"dwa*pie*zł*sze*czt*gr\"
  3. Kwota_Slownie(25.64,1); // zwróci \"dwadzieścia pięć złotych sześćdziesiąt cztery grosze\"
  4. ?>
czy odwrotnie z tym 0 i 1 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował rolling_stone 28.08.2004, 16:50:18
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 4.10.2025 - 11:03