fitness-web/common/components/Azaz.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;
}
}