Amount in words (in Latvian) – php

php Add comments

<?
$lvsay=array
(
 'nulle','viens','divi','trīs','četri','pieci','seši','septiņi','astoņi','deviņi','desmit',
 'vienpadsmit','divpadsmit','trīspadsmit','četrpadsmit','piecpadsmit','sešpadsmit',
  'septiņpadsmit','astoņpadsmimt','deviņpadsmit',
 'divdesmit',30=>'trīsdemit',40=>'četrdesmit',50=>'piecdesmit',60=>'sešdesmit',
   70=>'septiņdesmit',80=>'astoņdesmit',90=>'deviņdesmit',
 '100'=>'simts','100x'=>'simti','1000'=>'tūkstotis','1000x'=>'tūkstoši',
 '1000000'=>'miljons','1000000x'=>'miljoni','1000000000'=>'miljards','1000000000x'=>'miljardi',
 'ls'=>'lats','lsx'=>'lati','snt'=>'santīms','sntx'=>'santīmi','snt0'=>'santīmu'
);

function say($num)
{
 global $lvsay;
 if (($tmp=floor($num/1000000000))>=1)
  return say($tmp).' '.$lvsay['1000000000'.($tmp>1?'x':'')].' '.say($num-$tmp*1000000000);
 if (($tmp=floor($num/1000000))>=1)
  return say($tmp).' '.$lvsay['1000000'.($tmp>1?'x':'')].' '.say($num-$tmp*1000000);
 if (($tmp=floor($num/1000))>=1)
  return say($tmp).' '.$lvsay['1000'.($tmp>1?'x':'')].' '.say($num-$tmp*1000);
 if (($tmp=floor($num/100))>=1)
  return say($tmp).' '.$lvsay['100'.($tmp>1?'x':'')].' '.say($num-$tmp*100);
 if (($tmp=floor($num/10))>=2)
  if (isset($lvsay[$num]))
   return $lvsay[$num];
  else
   return $lvsay[$tmp*10].' '.say($num-$tmp*10);
 if ($num>=0)
  return $lvsay[$num];
}

function saynum($num)
{
 global $lvsay;
 return say($tmp=floor($num)). //[(n)]n
  ' '.$lvsay['ls'.(floor($num-floor($num/10)*10)>1?'x':(($num%10==0)?'x':''))].', './/ls
  str_pad($tmp=round($num-$tmp,2)*100,2,0,STR_PAD_LEFT).' './/nn
  $lvsay['snt'.(($tmp=($tmp%10))>1?'x':($tmp==0?'0':''))];//snt
}
?>

http://paste.php.lv/2304/nonum

One Response to “Amount in words (in Latvian) – php”

  1. Elcoj Says:

    Amazing! Not clear for me, how offen you updating your voicixs.com.
    Thank you

Leave a Reply

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Log in