63 lines
1.7 KiB
PHP
63 lines
1.7 KiB
PHP
<?php
|
|
namespace common\components;
|
|
|
|
class Azaz
|
|
{
|
|
|
|
public function __construct()
|
|
{
|
|
$this->EgyesStr = array('', 'egy', 'kettő', 'három', 'négy', 'öt', 'hat', 'hét', 'nyolc', 'kilenc');
|
|
$this->TizesStr = array('', 'tíz', 'húsz', 'harminc', 'negyven', 'ötven', 'hatvan', 'hetven', 'nyolcvan', 'kilencven');
|
|
$this->TizenStr = array('', 'tizen', 'huszon', 'harminc', 'negyven', 'ötven', 'hatvan', 'hetven', 'nyolcvan', 'kilencven');
|
|
}
|
|
|
|
public function toString($Mit)
|
|
{
|
|
$this->Mit = $Mit;
|
|
$this->Result = '';
|
|
if ($Mit == 0)
|
|
{
|
|
$this->Result = 'Nulla';
|
|
}
|
|
else
|
|
{
|
|
$this->Maradek = abs($this->Mit);
|
|
if ($this->Maradek > 999999999999)
|
|
{
|
|
throw new Exception('Túl nagy szám: '.$this->Maradek);
|
|
}
|
|
$this->Alakit($this->Maradek, 1000000000, 'milliárd');
|
|
$this->Alakit($this->Maradek, 1000000, 'millió');
|
|
$this->Alakit($this->Maradek, 1000, 'ezer');
|
|
$this->Alakit($this->Maradek, 1, '');
|
|
$this->Result = ucfirst($this->Result);
|
|
if ( $Mit < 0 )
|
|
$this->Result = 'Mínusz ' . $this->Result;
|
|
}
|
|
|
|
return $this->Result;
|
|
}
|
|
|
|
|
|
protected function Alakit($Maradek, $Oszto, $Osztonev)
|
|
{
|
|
if ( $Maradek >= $Oszto)
|
|
{
|
|
if ( mb_strlen($this->Result) > 0 )
|
|
$this->Result = $this->Result . '-';
|
|
|
|
$this->Mit = $Maradek / $Oszto;
|
|
if ( $this->Mit >= 100)
|
|
$this->Result = $this->Result . $this->EgyesStr[$this->Mit / 100] . 'száz';
|
|
|
|
$this->Mit = $this->Mit % 100;
|
|
if ($this->Mit % 10 !== 0)
|
|
$this->Result = $this->Result . $this->TizenStr[$this->Mit / 10] . $this->EgyesStr[$this->Mit % 10] . $Osztonev;
|
|
else
|
|
$this->Result = $this->Result . $this->TizesStr[$this->Mit / 10] . $Osztonev;
|
|
}
|
|
|
|
$this->Maradek = $this->Maradek % $Oszto;
|
|
}
|
|
|
|
} |