diff --git a/Utils/Converter/EnergyPowerType.php b/Utils/Converter/EnergyPowerType.php index 4ccb71417..e581ec097 100644 --- a/Utils/Converter/EnergyPowerType.php +++ b/Utils/Converter/EnergyPowerType.php @@ -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'; } diff --git a/Utils/Converter/Measurement.php b/Utils/Converter/Measurement.php index 494840bcb..0ab8a887c 100644 --- a/Utils/Converter/Measurement.php +++ b/Utils/Converter/Measurement.php @@ -38,8 +38,6 @@ class Measurement * * @return float * - * @todo : implement more - * * @since 1.0.0 * @author Dennis Eichhorn */ @@ -114,8 +112,6 @@ class Measurement * * @return float * - * @todo : implement more - * * @since 1.0.0 * @author Dennis Eichhorn */ @@ -1237,8 +1233,68 @@ class Measurement * @since 1.0.0 * @author Dennis Eichhorn */ - 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; }