Skip to content

Instantly share code, notes, and snippets.

@machv
Created September 11, 2015 09:00
Show Gist options
  • Save machv/15df341c30903157176f to your computer and use it in GitHub Desktop.
Save machv/15df341c30903157176f to your computer and use it in GitHub Desktop.
int to string for CZ
<?php
function int_to_text($int, $x = 1)
{
$len = strlen($int);
// desítky + jednotky
if(($len - 2) >= 0)
$des = substr($int, $len - 2, 2); //dvojciferne
else $des = substr($int, $len - 1, 1); //jednociferne
if($des < 21)
$des_text = int_to_text_basic($des, $x);
else {
$des_text = int_to_text_basic(substr($des, 0, 1) . '0', $x);
$des_text .= int_to_text_basic(substr($des, 1, 1), $x);
}
if($len > 2) { //stovky
$sto = substr($int, $len - 3, 1);
$sto_text = int_to_text_basic($sto, 3);
if($sto == 0) {}
elseif($sto == 1) $sto_text .= 'sto';
elseif($sto == 2) $sto_text .= 'stě';
elseif($sto > 2 && $sto < 5) $sto_text .= 'sta';
else $sto_text .= 'set';
}
if($len > 3) { // tisíce
if(($len - 6) >= 0)
$tis = substr($int, $len - 6, 3);
elseif(($len - 5) >= 0)
$tis = substr($int, $len - 5, 2);
else $tis = substr($int, $len - 4, 1);
$tis_text = int_to_text($tis, 4);
if($tis == 0) {}
elseif($tis == 1) $tis_text .= 'tisíc';
elseif($tis > 1 && $tis < 5) $tis_text .= 'tisíce';
else $tis_text .= 'tisíc';
}
if($len > 6) { //miliony
if(($len - 9) >= 0)
$mil = substr($int, $len - 9, 3);
elseif(($len - 8) >= 0)
$mil = substr($int, $len - 8, 2);
else $mil = substr($int, $len - 7, 1);
$mil_text = int_to_text($mil, 7);
if($mil == 0) {}
elseif($mil == 1) $mil_text .= 'milion';
elseif($mil > 1 && $mil < 5) $mil_text .= 'milion';
else $mil_text .= 'milionů';
}
return $mil_text . '' . $tis_text . '' . $sto_text . '' . $des_text;
}
function int_to_text_basic($i, $r = 1)
{
switch($i) {
case 1: $t = 'jedna'; break; case 2: $t = 'dva'; break;
case 3: $t = 'tři'; break; case 4: $t = 'čtyři'; break;
case 5: $t = 'pět'; break; case 6: $t = 'šest'; break;
case 7: $t = 'sedm'; break; case 8: $t = 'osm'; break;
case 9: $t = 'devět'; break; case 10: $t = 'deset'; break;
case 11: $t = 'jedenáct'; break; case 12: $t = 'dvanáct'; break;
case 13: $t = 'třináct'; break; case 14: $t = 'čtrnáct'; break;
case 15: $t = 'patnáct'; break; case 16: $t = 'šestnáct'; break;
case 17: $t = 'sedmnáct'; break; case 18: $t = 'osmnáct'; break;
case 19: $t = 'devatenáct'; break; case 20: $t = 'dvacet'; break;
case 30: $t = 'třicet'; break; case 40: $t = 'čtyřicet'; break;
case 50: $t = 'padesát'; break; case 60: $t = 'šedesát'; break;
case 70: $t = 'sedmdesát'; break; case 80: $t = 'osmdesát'; break;
case 90: $t = 'devadesát'; break;
}
switch($r) {
case 3: //stovky
switch($i) {
case 1: $t = 'jedno'; break; case 2: $t = 'dvě'; break;
}
break;
case 4: //tisice
case 7: //miliony
switch($i) {
case 1: $t = 'jeden'; break;
}
break;
}
return $t;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment