This commit is contained in:
Dennis Eichhorn 2016-10-30 18:58:36 +01:00
parent 0deb040847
commit 7d3620c4f4
2 changed files with 70 additions and 5 deletions

View File

@ -30,4 +30,13 @@ use phpOMS\Datatypes\Enum;
*/
abstract class EnergyPowerType extends Enum
{
const KILOWATT_HOUERS = 'kWh';
const MEGAWATT_HOUERS = 'MWh';
const KILOTONS = 'kt';
const JOULS = 'J';
const CALORIES = 'Cal';
const BTU = 'BTU';
const KILOJOULS = 'kJ';
const THERMEC = 'thmEC';
const NEWTON_METERS = 'Nm';
}

View File

@ -38,8 +38,6 @@ class Measurement
*
* @return float
*
* @todo : implement more
*
* @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com>
*/
@ -114,8 +112,6 @@ class Measurement
*
* @return float
*
* @todo : implement more
*
* @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com>
*/
@ -1237,8 +1233,68 @@ class Measurement
* @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com>
*/
public static function convertEnergie(float $value, string $from = WeightType::GRAM, string $to = WeightType::KILOGRAM) : float
public static function convertEnergie(float $value, string $from = EnergyPowerType::JOULS, string $to = EnergyPowerType::KILOWATT_HOUERS) : float
{
switch ($from) {
case EnergyPowerType::JOULS:
break;
case EnergyPowerType::KILOWATT_HOUERS:
$value /= 0.00000027778;
break;
case EnergyPowerType::MEGAWATT_HOUERS:
$value /= 0.00000000027778;
break;
case EnergyPowerType::KILOTONS:
$value /= 0.00000000000023901;
break;
case EnergyPowerType::CALORIES:
$value /= 0.00023885;
break;
case EnergyPowerType::BTU:
$value /= 0.00094782;
break;
case EnergyPowerType::KILOJOULS:
$value /= 0.0010000;
break;
case EnergyPowerType::THERMEC:
$value /= 0.0000000094782;
break;
case EnergyPowerType::NEWTON_METERS:
break;
default:
throw new \InvalidArgumentException('Energy not supported');
}
switch ($to) {
case EnergyPowerType::JOULS:
break;
case EnergyPowerType::KILOWATT_HOUERS:
$value *= 0.00000027778;
break;
case EnergyPowerType::MEGAWATT_HOUERS:
$value *= 0.00000000027778;
break;
case EnergyPowerType::KILOTONS:
$value *= 0.00000000000023901;
break;
case EnergyPowerType::CALORIES:
$value *= 0.00023885;
break;
case EnergyPowerType::BTU:
$value *= 0.00094782;
break;
case EnergyPowerType::KILOJOULS:
$value *= 0.0010000;
break;
case EnergyPowerType::THERMEC:
$value *= 0.0000000094782;
break;
case EnergyPowerType::NEWTON_METERS:
break;
default:
throw new \InvalidArgumentException('Energy not supported');
}
return $value;
}