diff --git a/Utils/Converter/AngleType.php b/Utils/Converter/AngleType.php new file mode 100644 index 000000000..e69de29bb diff --git a/Utils/Converter/AreaType.php b/Utils/Converter/AreaType.php new file mode 100644 index 000000000..f87fa740a --- /dev/null +++ b/Utils/Converter/AreaType.php @@ -0,0 +1,46 @@ + + * @author Dennis Eichhorn + * @copyright 2013 Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace phpOMS\Utils\Converter; + +use phpOMS\Datatypes\Enum; + +/** + * Area type enum. + * + * @category Framework + * @package phpOMS\Utils\Converter + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +abstract class AreaType extends Enum +{ + const SQUARE_FEET = 'ft'; + const SQUARE_METERS = 'm'; + const SQUARE_KILOMETERS = 'km'; + const SQUARE_MILES = 'mi'; + const SQUARE_YARDS = 'yd'; + const SQUARE_INCHES = 'in'; + const SQUARE_MICROINCHES = 'muin'; + const SQUARE_CENTIMETERS = 'cm'; + const SQUARE_MILIMETERS = 'mm'; + const SQUARE_MICROMETERS = 'micron'; + const SQUARE_DECIMETERS = 'dm'; + const HECTARES = 'ha'; + const ACRES = 'ac'; +} diff --git a/Utils/Converter/EnergyPowerType.php b/Utils/Converter/EnergyPowerType.php new file mode 100644 index 000000000..e69de29bb diff --git a/Utils/Converter/FileSizeType.php b/Utils/Converter/FileSizeType.php new file mode 100644 index 000000000..30f193a21 --- /dev/null +++ b/Utils/Converter/FileSizeType.php @@ -0,0 +1,43 @@ + + * @author Dennis Eichhorn + * @copyright 2013 Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace phpOMS\Utils\Converter; + +use phpOMS\Datatypes\Enum; + +/** + * File size type enum. + * + * @category Framework + * @package phpOMS\Utils\Converter + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +abstract class FileSizeType extends Enum +{ + const TERRABYTE = 'TB'; + const GIGABYTE = 'GB'; + const MEGABYTE = 'MB'; + const KILOBYTE = 'KB'; + const BYTE = 'B'; + const TERRABIT = 'tbit'; + const GIGABIT = 'gbit'; + const MEGABIT = 'mbit'; + const KILOBIT = 'kbit'; + const BIT = 'bit'; +} diff --git a/Utils/Converter/LengthType.php b/Utils/Converter/LengthType.php new file mode 100644 index 000000000..41909be10 --- /dev/null +++ b/Utils/Converter/LengthType.php @@ -0,0 +1,54 @@ + + * @author Dennis Eichhorn + * @copyright 2013 Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace phpOMS\Utils\Converter; + +use phpOMS\Datatypes\Enum; + +/** + * Length type enum. + * + * @category Framework + * @package phpOMS\Utils\Converter + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +abstract class LengthType extends Enum +{ + const MILES = 'mi'; + const METERS = 'm'; + const MICROMETER = 'micron'; + const CENTIMETERS = 'cm'; + const MILLIMETERS = 'mm'; + const KILOMETERS = 'km'; + const CHAINS = 'ch'; + const FEET = 'ft'; + const FURLONGS = 'fur'; + const MICROINCH = 'muin'; + const INCHES = 'in'; + const YARDS = 'yd'; + const PARSECS = 'pc'; + const UK_NAUTICAL_MILES = 'uk nmi'; + const US_NAUTICAL_MILES = 'us nmi'; + const UK_NAUTICAL_LEAGUES = 'uk nl'; + const NAUTICAL_LEAGUES = 'nl'; + const UK_LEAGUES = 'uk lg'; + const US_LEAGUES = 'us lg'; + const LIGHTYEARS = 'ly'; + const DECIMETERS = 'dm'; +} diff --git a/Utils/Converter/Measurement.php b/Utils/Converter/Measurement.php index e38c0ac02..27691f25e 100644 --- a/Utils/Converter/Measurement.php +++ b/Utils/Converter/Measurement.php @@ -45,35 +45,59 @@ class Measurement */ public static function convertTemperature(float $value, string $from = TemperatureType::FAHRENHEIT, string $to = TemperatureType::CELSIUS) : float { - // to celving + // to kelving switch ($from) { + case TemperatureType::KELVIN: + break; case TemperatureType::CELSIUS: $value += 273.15; break; case TemperatureType::FAHRENHEIT: $value = ($value - 32) / 1.8 + 273.5; break; - case TemperatureType::KELVIN: - break; case TemperatureType::REAUMUR: $value = $value / 0.8 + 273.15; break; + case TemperatureType::RANKINE: + $value = ($value - 491.67) / 1.8 + 273.15; + break; + case TemperatureType::DELISLE: + $value = ($value + 100) / 1.5 + 273.15; + break; + case TemperatureType::NEWTON: + $value = $value / 0.33 + 273.15; + break; + case TemperatureType::ROMER: + $value = ($value - 7.5) / 0.525 + 273.15; + break; default: throw new \InvalidArgumentException('Temperature not supported'); } switch ($to) { + case TemperatureType::KELVIN: + break; case TemperatureType::CELSIUS: $value -= 273.15; break; case TemperatureType::FAHRENHEIT: $value = (($value - 273.15) * 1.8) + 32; break; - case TemperatureType::KELVIN: - break; case TemperatureType::REAUMUR: $value = ($value - 273.15) * 0.8; break; + case TemperatureType::RANKINE: + $value = ($value - 273.15) * 1.8 + 491.67; + break; + case TemperatureType::DELISLE: + $value = ($value - 273.15) * 1.5 - 100; + break; + case TemperatureType::NEWTON: + $value = ($value - 273.15) / 0.33; + break; + case TemperatureType::ROMER: + $value = ($value - 273.15) * 0.525 + 7.5; + break; default: throw new \InvalidArgumentException('Temperature not supported'); } @@ -99,15 +123,18 @@ class Measurement { // to gram switch ($from) { + case WeightType::GRAM: + break; + case WeightType::MICROGRAM: + $value /= 1000000; + break; case WeightType::MILLIGRAM: $value /= 1000; break; - case WeightType::GRAM: - break; case WeightType::KILOGRAM: $value *= 1000; break; - case WeightType::TONS: + case WeightType::METRIC_TONS: $value *= 1000000; break; case WeightType::STONES: @@ -116,20 +143,44 @@ class Measurement case WeightType::OUNCES: $value /= 0.035274; break; + case WeightType::POUNDS: + $value /= 0.0022046; + break; + case WeightType::GRAIN: + $value /= 15.432; + break; + case WeightType::CARAT: + $value /= 5.0; + break; + case WeightType::LONG_TONS: + $value /= 9.8420653e-07; + break; + case WeightType::SHORT_TONS: + $value /= 1.1023113e-06; + break; + case WeightType::TROY_POUNDS: + $value /= 0.0026792; + break; + case WeightType::TROY_OUNCES: + $value /= 0.032151; + break; default: throw new \InvalidArgumentException('Weight not supported'); } switch ($to) { + case WeightType::GRAM: + break; + case WeightType::MICROGRAM: + $value *= 1000000; + break; case WeightType::MILLIGRAM: $value *= 1000; break; - case WeightType::GRAM: - break; case WeightType::KILOGRAM: $value /= 1000; break; - case WeightType::TONS: + case WeightType::METRIC_TONS: $value /= 1000000; break; case WeightType::STONES: @@ -138,6 +189,27 @@ class Measurement case WeightType::OUNCES: $value *= 0.035274; break; + case WeightType::POUNDS: + $value *= 0.0022046; + break; + case WeightType::GRAIN: + $value *= 15.432; + break; + case WeightType::CARAT: + $value *= 5.0; + break; + case WeightType::LONG_TONS: + $value *= 9.8420653e-07; + break; + case WeightType::SHORT_TONS: + $value *= 1.1023113e-06; + break; + case WeightType::TROY_POUNDS: + $value *= 0.0026792; + break; + case WeightType::TROY_OUNCES: + $value *= 0.032151; + break; default: throw new \InvalidArgumentException('Weight not supported'); } @@ -149,16 +221,151 @@ class Measurement * Convert length. * * @param float $value Value to convert - * @param string $from Input weight - * @param string $to Output weight + * @param string $from Input length + * @param string $to Output length * * @return float * * @since 1.0.0 * @author Dennis Eichhorn */ - public static function convertLength(float $value, string $from = WeightType::GRAM, string $to = WeightType::KILOGRAM) : float + public static function convertLength(float $value, string $from = LengthType::METER, string $to = LengthType::KILOMETER) : float { + // to meter + switch ($from) { + case LengthType::METER: + break; + case LengthType::MILES: + $value /= 0.00062137; + break; + case LengthType::MICROMETER: + $value /= 1000000; + break; + case LengthType::CENTIMETERS: + $value /= 100; + break; + case LengthType::MILLIMETERS: + $value /= 1000; + break; + case LengthType::KILOMETERS: + $value *= 1000; + break; + case LengthType::CHAINS: + $value /= 0.049710; + break; + case LengthType::FEET: + $value /= 3.2808; + break; + case LengthType::FURLONGS: + $value /= 0.0049710; + break; + case LengthType::MICROINCH: + $value /= 39370000; + break; + case LengthType::INCHES: + $value /= 39.370; + break; + case LengthType::YARDS: + $value /= 1.0936; + break; + case LengthType::PARSECS: + $value /= 3.2407793e-17; + break; + case LengthType::UK_NAUTICAL_MILES: + $value /= 0.00053961; + break; + case LengthType::US_NAUTICAL_MILES: + $value /= 0.00053996; + break; + case LengthType::UK_NAUTICAL_LEAGUES: + $value /= 0.00017987; + break; + case LengthType::UK_LEAGUES: + $value /= 0.00020700; + break; + case LengthType::US_LEAGUES: + $value /= 0.00020712; + break; + case LengthType::NAUTICAL_LEAGUES: + $value /= 0.00017999; + break; + case LengthType::LIGHTYEARS: + $value /= 1.0570008e-16; + break; + case LengthType::DECIMETERS: + $value /= 10; + break; + default: + throw new \InvalidArgumentException('Length not supported'); + } + + switch ($to) { + case LengthType::METER: + break; + case LengthType::MILES: + $value *= 0.00062137; + break; + case LengthType::MICROMETER: + $value *= 1000000; + break; + case LengthType::CENTIMETERS: + $value *= 100; + break; + case LengthType::MILLIMETERS: + $value *= 1000; + break; + case LengthType::KILOMETERS: + $value /= 1000; + break; + case LengthType::CHAINS: + $value *= 0.049710; + break; + case LengthType::FEET: + $value *= 3.2808; + break; + case LengthType::FURLONGS: + $value *= 0.0049710; + break; + case LengthType::MICROINCH: + $value *= 39370000; + break; + case LengthType::INCHES: + $value *= 39.370; + break; + case LengthType::YARDS: + $value *= 1.0936; + break; + case LengthType::PARSECS: + $value *= 3.2407793e-17; + break; + case LengthType::UK_NAUTICAL_MILES: + $value *= 0.00053961; + break; + case LengthType::US_NAUTICAL_MILES: + $value *= 0.00053996; + break; + case LengthType::UK_NAUTICAL_LEAGUES: + $value *= 0.00017987; + break; + case LengthType::UK_LEAGUES: + $value *= 0.00020700; + break; + case LengthType::US_LEAGUES: + $value *= 0.00020712; + break; + case LengthType::NAUTICAL_LEAGUES: + $value *= 0.00017999; + break; + case LengthType::LIGHTYEARS: + $value *= 1.0570008e-16; + break; + case LengthType::DECIMETERS: + $value *= 10; + break; + default: + throw new \InvalidArgumentException('Length not supported'); + } + return $value; } @@ -166,16 +373,103 @@ class Measurement * Convert area. * * @param float $value Value to convert - * @param string $from Input weight - * @param string $to Output weight + * @param string $from Input length + * @param string $to Output length * * @return float * * @since 1.0.0 * @author Dennis Eichhorn */ - public static function convertArea(float $value, string $from = WeightType::GRAM, string $to = WeightType::KILOGRAM) : float + public static function convertArea(float $value, string $from = AreaType::SQUARE_METERS, string $to = AreaType::SQUARE_KILOMETERS) : float { + // to square meter + switch ($from) { + case AreaType::SQUARE_METERS: + break; + case AreaType::SQUARE_FEET: + $value /= 10.764; + break; + case AreaType::SQUARE_KILOMETERS: + $value *= 1000000; + break; + case AreaType::SQUARE_MILES: + $value /= 3.8610216e-07; + break; + case AreaType::SQUARE_YARDS: + $value /= 1.1960; + break; + case AreaType::SQUARE_INCHES: + $value /= 1550; + break; + case AreaType::SQUARE_MICROINCHES: + $value /= 1.550031e+15; + break; + case AreaType::SQUARE_CENTIMETERS: + $value /= 10000; + break; + case AreaType::SQUARE_MILIMETERS: + $value /= 1000000; + break; + case AreaType::SQUARE_MICROMETERS: + $value /= 1000000000000; + break; + case AreaType::SQUARE_DECIMETERS: + $value /= 100; + break; + case AreaType::HECTARES: + $value *= 10000; + break; + case AreaType::ACRES: + $value /= 0.00024711; + break; + default: + throw new \InvalidArgumentException('Area not supported'); + } + + switch ($to) { + case AreaType::SQUARE_METERS: + break; + case AreaType::SQUARE_FEET: + $value *= 10.764; + break; + case AreaType::SQUARE_KILOMETERS: + $value /= 1000000; + break; + case AreaType::SQUARE_MILES: + $value *= 3.8610216e-07; + break; + case AreaType::SQUARE_YARDS: + $value *= 1.1960; + break; + case AreaType::SQUARE_INCHES: + $value *= 1550; + break; + case AreaType::SQUARE_MICROINCHES: + $value *= 1.550031e+15; + break; + case AreaType::SQUARE_CENTIMETERS: + $value *= 10000; + break; + case AreaType::SQUARE_MILIMETERS: + $value *= 1000000; + break; + case AreaType::SQUARE_MICROMETERS: + $value *= 1000000000000; + break; + case AreaType::SQUARE_DECIMETERS: + $value *= 100; + break; + case AreaType::HECTARES: + $value /= 10000; + break; + case AreaType::ACRES: + $value *= 0.00024711; + break; + default: + throw new \InvalidArgumentException('Area not supported'); + } + return $value; } @@ -183,16 +477,253 @@ class Measurement * Convert volume. * * @param float $value Value to convert - * @param string $from Input weight - * @param string $to Output weight + * @param string $from Input volume + * @param string $to Output volume * * @return float * * @since 1.0.0 * @author Dennis Eichhorn */ - public static function convertVolume(float $value, string $from = WeightType::GRAM, string $to = WeightType::KILOGRAM) : float + public static function convertVolume(float $value, string $from = VolumeType::LITER, string $to = VolumeType::LITER) : float { + // to square meter + switch ($from) { + case VolumeType::LITER: + break; + case VolumeType::US_GALLON_LIQUID: + $value /= 0.26417; + break; + case VolumeType::UK_GALLON: + $value /= 0.21997; + break; + case VolumeType::US_PINT_LIQUID: + $value /= 2.1134; + break; + case VolumeType::UK_PINT: + $value /= 1.7598; + break; + case VolumeType::CENTILITER: + $value /= 100; + break; + case VolumeType::MILLILITER: + $value /= 1000; + break; + case VolumeType::CUBIC_METER: + $value *= 1000; + break; + case VolumeType::UK_BARREL: + $value /= 0.0061103; + break; + case VolumeType::US_GALLON_DRY: + $value /= 0.22702; + break; + case VolumeType::CUBIC_FEET: + $value /= 0.035315; + break; + case VolumeType::US_QUARTS_LIQUID: + $value /= 1.0567; + break; + case VolumeType::US_QUARTS_DRY: + $value /= 0.90808; + break; + case VolumeType::UK_QUARTS: + $value /= 0.87988; + break; + case VolumeType::US_PINT_DRY: + $value /= 1.8162; + break; + case VolumeType::US_CUP: + $value /= 4.2268; + break; + case VolumeType::CAN_CUP: + $value /= 4.3994; + break; + case VolumeType::METRIC_CUP: + $value /= 4; + break; + case VolumeType::US_GILL: + $value /= 8.4535; + break; + case VolumeType::US_TABLESPOON: + $value /= 67.628; + break; + case VolumeType::UK_TABLESPOON: + $value /= 70.390; + break; + case VolumeType::METRIC_TABLESPOON: + $value /= 66.667; + break; + case VolumeType::US_TEASPOON: + $value /= 202.88; + break; + case VolumeType::UK_TEASPOON: + $value /= 281.56; + break; + case VolumeType::METRIC_TEASPOON: + $value /= 200; + break; + case VolumeType::US_OUNCES: + $value /= 33.814; + break; + case VolumeType::UK_OUNCES: + $value /= 35.195; + break; + case VolumeType::CUBIC_INCH: + $value /= 61.024; + break; + case VolumeType::CUBIC_CENTIMETER: + $value /= 1000; + break; + case VolumeType::CUBIC_MILLIMETER: + $value /= 1000000; + break; + case VolumeType::MICROLITER: + $value /= 1000000; + break; + case VolumeType::KILOLITER: + $value /= 1000; + break; + case VolumeType::UK_GILL: + $value /= 7.0390; + break; + case VolumeType::CUBIC_YARD: + $value /= 0.0013080; + break; + case VolumeType::US_BARREL_DRY: + $value /= 0.0086485; + break; + case VolumeType::US_BARREL_LIQUID: + $value /= 0.0083864; + break; + case VolumeType::US_BARREL_OIL: + $value /= 0.0062898; + break; + case VolumeType::US_BARREL_FEDERAL: + $value /= 0.0085217; + break; + default: + throw new \InvalidArgumentException('Volume not supported'); + } + + switch ($to) { + case VolumeType::LITER: + break; + case VolumeType::US_GALLON_LIQUID: + $value *= 0.26417; + break; + case VolumeType::UK_GALLON: + $value *= 0.21997; + break; + case VolumeType::US_PINT_LIQUID: + $value *= 2.1134; + break; + case VolumeType::UK_PINT: + $value *= 1.7598; + break; + case VolumeType::CENTILITER: + $value *= 100; + break; + case VolumeType::MILLILITER: + $value *= 1000; + break; + case VolumeType::CUBIC_METER: + $value /= 1000; + break; + case VolumeType::UK_BARREL: + $value *= 0.0061103; + break; + case VolumeType::US_GALLON_DRY: + $value *= 0.22702; + break; + case VolumeType::CUBIC_FEET: + $value *= 0.035315; + break; + case VolumeType::US_QUARTS_LIQUID: + $value *= 1.0567; + break; + case VolumeType::US_QUARTS_DRY: + $value *= 0.90808; + break; + case VolumeType::UK_QUARTS: + $value *= 0.87988; + break; + case VolumeType::US_PINT_DRY: + $value *= 1.8162; + break; + case VolumeType::US_CUP: + $value *= 4.2268; + break; + case VolumeType::CAN_CUP: + $value *= 4.3994; + break; + case VolumeType::METRIC_CUP: + $value *= 4; + break; + case VolumeType::US_GILL: + $value *= 8.4535; + break; + case VolumeType::US_TABLESPOON: + $value *= 67.628; + break; + case VolumeType::UK_TABLESPOON: + $value *= 70.390; + break; + case VolumeType::METRIC_TABLESPOON: + $value *= 66.667; + break; + case VolumeType::US_TEASPOON: + $value *= 202.88; + break; + case VolumeType::UK_TEASPOON: + $value *= 281.56; + break; + case VolumeType::METRIC_TEASPOON: + $value *= 200; + break; + case VolumeType::US_OUNCES: + $value *= 33.814; + break; + case VolumeType::UK_OUNCES: + $value *= 35.195; + break; + case VolumeType::CUBIC_INCH: + $value *= 61.024; + break; + case VolumeType::CUBIC_CENTIMETER: + $value *= 1000; + break; + case VolumeType::CUBIC_MILLIMETER: + $value *= 1000000; + break; + case VolumeType::MICROLITER: + $value *= 1000000; + break; + case VolumeType::KILOLITER: + $value *= 1000; + break; + case VolumeType::UK_GILL: + $value *= 7.0390; + break; + case VolumeType::CUBIC_YARD: + $value *= 0.0013080; + break; + case VolumeType::US_BARREL_DRY: + $value *= 0.0086485; + break; + case VolumeType::US_BARREL_LIQUID: + $value *= 0.0083864; + break; + case VolumeType::US_BARREL_OIL: + $value *= 0.0062898; + break; + case VolumeType::US_BARREL_FEDERAL: + $value *= 0.0085217; + break; + default: + throw new \InvalidArgumentException('Volume not supported'); + } + return $value; } @@ -225,8 +756,71 @@ class Measurement * @since 1.0.0 * @author Dennis Eichhorn */ - public static function convertTime(float $value, string $from = WeightType::GRAM, string $to = WeightType::KILOGRAM) : float + public static function convertTime(float $value, string $from = TimeType::SECONDS, string $to = TimeType::HOURS) : float { + // to byte + switch ($from) { + case TimeType::SECONDS: + break; + case TimeType::MINUTES: + $value *= 60; + break; + case TimeType::MILLISECONDS: + $value /= 1000; + break; + case TimeType::HOURS: + $value /= 3600; + break; + case TimeType::DAYS: + $value /= 3600*24; + break; + case TimeType::WEEKS: + $value /= 3600*24*7; + break; + case TimeType::MONTH: + $value /= 3600*24*30; + break; + case TimeType::QUARTER: + $value /= 3600*24*90; + break; + case TimeType::QUARTER: + $value /= 3600*24*365; + break; + default: + throw new \InvalidArgumentException('Size not supported'); + } + + switch ($to) { + case TimeType::SECONDS: + break; + case TimeType::MINUTES: + $value /= 60; + break; + case TimeType::MILLISECONDS: + $value *= 1000; + break; + case TimeType::HOURS: + $value *= 3600; + break; + case TimeType::DAYS: + $value *= 3600*24; + break; + case TimeType::WEEKS: + $value *= 3600*24*7; + break; + case TimeType::MONTH: + $value *= 3600*24*30; + break; + case TimeType::QUARTER: + $value *= 3600*24*90; + break; + case TimeType::QUARTER: + $value *= 3600*24*365; + break; + default: + throw new \InvalidArgumentException('Size not supported'); + } + return $value; } @@ -280,4 +874,90 @@ class Measurement { return $value; } + + /** + * File size. + * + * @param float $value Value to convert + * @param string $from Input weight + * @param string $to Output weight + * + * @return float + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public static function convertFileSize(float $value, string $from = FileSizeType::BYTE, string $to = FileSizeType::MEGABYTE) : float + { + // to byte + switch ($from) { + case FileSizeType::BYTE: + break; + case FileSizeType::KILOBYTE: + $value *= 1000; + break; + case FileSizeType::MEGABYTE: + $value *= 1000000; + break; + case FileSizeType::GIGABYTE: + $value *= 1000000000; + break; + case FileSizeType::TERRABYTE: + $value *= 1000000000000; + break; + case FileSizeType::BIT: + $value /= 8; + break; + case FileSizeType::KILOBIT: + $value /= 0.008; + break; + case FileSizeType::MEGABIT: + $value /= 0.000008; + break; + case FileSizeType::GIGABIT: + $value /= 8e-9; + break; + case FileSizeType::TERRABIT: + $value /= 8e-12; + break; + default: + throw new \InvalidArgumentException('Size not supported'); + } + + switch ($to) { + case FileSizeType::BYTE: + break; + case FileSizeType::KILOBYTE: + $value /= 1000; + break; + case FileSizeType::MEGABYTE: + $value /= 1000000; + break; + case FileSizeType::GIGABYTE: + $value /= 1000000000; + break; + case FileSizeType::TERRABYTE: + $value /= 1000000000000; + break; + case FileSizeType::BIT: + $value *= 8; + break; + case FileSizeType::KILOBIT: + $value *= 0.008; + break; + case FileSizeType::MEGABIT: + $value *= 0.000008; + break; + case FileSizeType::GIGABIT: + $value *= 8e-9; + break; + case FileSizeType::TERRABIT: + $value *= 8e-12; + break; + default: + throw new \InvalidArgumentException('Size not supported'); + } + + return $value; + } } diff --git a/Utils/Converter/PressureType.php b/Utils/Converter/PressureType.php new file mode 100644 index 000000000..e69de29bb diff --git a/Utils/Converter/SpeedType.php b/Utils/Converter/SpeedType.php new file mode 100644 index 000000000..64535fcd9 --- /dev/null +++ b/Utils/Converter/SpeedType.php @@ -0,0 +1,68 @@ + + * @author Dennis Eichhorn + * @copyright 2013 Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace phpOMS\Utils\Converter; + +use phpOMS\Datatypes\Enum; + +/** + * Speed type enum. + * + * @category Framework + * @package phpOMS\Utils\Converter + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +abstract class SpeedType extends Enum +{ + const MILES_PER_DAY = 'ft'; + const MILES_PER_HOUR = 'ft'; + const MILES_PER_MINUTE = 'ft'; + const MILES_PER_SECOND = 'ft'; + const KILOMETERS_PER_DAY = 'ft'; + const KILOMETERS_PER_HOUR = 'ft'; + const KILOMETERS_PER_MINUTE = 'ft'; + const KILOMETERS_PER_SECOND = 'ft'; + const METERS_PER_DAY = 'ft'; + const METERS_PER_HOUR = 'ft'; + const METERS_PER_MINUTE = 'ft'; + const METERS_PER_SECOND = 'ft'; + const CENTIMETERS_PER_DAY = 'ft'; + const CENTIMETERS_PER_HOUR = 'ft'; + const CENTIMETERS_PER_MINUTES = 'ft'; + const CENTIMETERS_PER_SECOND = 'ft'; + const MILLIMETERS_PER_DAY = 'ft'; + const MILLIMETERS_PER_HOUR = 'ft'; + const MILLIMETERS_PER_MINUTE = 'ft'; + const MILLIMETERS_PER_SECOND = 'ft'; + const YARDS_PER_DAY = 'ft'; + const YARDS_PER_HOUR = 'ft'; + const YARDS_PER_MINUTE = 'ft'; + const YARDS_PER_SECOND = 'ft'; + const INCHES_PER_DAY = 'ft'; + const INCHES_PER_HOUR = 'ft'; + const INCHES_PER_MINUTE = 'ft'; + const INCHES_PER_SECOND = 'ft'; + const FEET_PER_DAY = 'ft'; + const FEET_PER_HOUR = 'ft'; + const FEET_PER_MINUTE = 'ft'; + const FEET_PER_SECOND = 'ft'; + const LIGHT_SPEED = 'ft'; + const MACH = 'ft'; + const KNOTS = 'ft'; +} diff --git a/Utils/Converter/TemperatureType.php b/Utils/Converter/TemperatureType.php index d6441ad80..378f8a33f 100644 --- a/Utils/Converter/TemperatureType.php +++ b/Utils/Converter/TemperatureType.php @@ -34,4 +34,8 @@ abstract class TemperatureType extends Enum const FAHRENHEIT = 'fahrenheit'; const KELVIN = 'kelvin'; const REAUMUR = 'reaumur'; + const RANKINE = 'rankine'; + const DELISLE = 'delisle'; + const NEWTON = 'newton'; + const ROMER = 'romer'; } diff --git a/Utils/Converter/TimeType.php b/Utils/Converter/TimeType.php new file mode 100644 index 000000000..363394fc9 --- /dev/null +++ b/Utils/Converter/TimeType.php @@ -0,0 +1,42 @@ + + * @author Dennis Eichhorn + * @copyright 2013 Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace phpOMS\Utils\Converter; + +use phpOMS\Datatypes\Enum; + +/** + * Time type enum. + * + * @category Framework + * @package phpOMS\Utils\Converter + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +abstract class TimeType extends Enum +{ + const MILLISECONDS = 'ms'; + const SECONDS = 's'; + const MINUTES = 'm'; + const HOURS = 'h'; + const DAYS = 'd'; + const WEEKS = 'w'; + const MONTH = 'm'; + const QUARTER = 'q'; + const YEAR = 'y'; +} diff --git a/Utils/Converter/VolumeType.php b/Utils/Converter/VolumeType.php new file mode 100644 index 000000000..acf923c99 --- /dev/null +++ b/Utils/Converter/VolumeType.php @@ -0,0 +1,71 @@ + + * @author Dennis Eichhorn + * @copyright 2013 Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace phpOMS\Utils\Converter; + +use phpOMS\Datatypes\Enum; + +/** + * Volume type enum. + * + * @category Framework + * @package phpOMS\Utils\Converter + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +abstract class VolumeType extends Enum +{ + const UK_GALLON = 'UK gal'; + const US_GALLON_LIQUID = 'US gal lqd'; + const US_GALLON_DRY = 'US gal dry'; + const UK_PINT = 'pt'; + const US_PINT_LIQUID = 'US pt lqd'; + const US_PINT_DRY = 'US pt dry'; + const US_QUARTS_LIQUID = 'US qt lqd'; + const US_QUARTS_DRY = 'US qt dry'; + const UK_QUARTS = 'US qt dry'; + const US_GILL = 'US gi'; + const UK_GILL = 'UK gi'; + const LITER = 'L'; + const MICROLITER = 'mul'; + const MILLILITER = 'mL'; + const CENTILITER = 'cl'; + const KILOLITER = 'kl'; + const UK_BARREL = 'UK bbl'; + const US_BARREL_DRY = 'US bbl dry'; + const US_BARREL_LIQUID = 'US bbl lqd'; + const US_BARREL_OIL = 'US bbl oil'; + const US_BARREL_FEDERAL = 'US bbl fed'; + const US_OUNCES = 'us fl oz'; + const UK_OUNCES = 'uk fl oz'; + const US_TEASPOON = 'US tsp'; + const UK_TEASPOON = 'UK tsp'; + const METRIC_TEASPOON = 'Metric tsp'; + const US_TABLESPOON = 'US tblsp'; + const UK_TABLESPOON = 'UK tblsp'; + const METRIC_TABLESPOON = 'Metric tblsp'; + const US_CUP = 'US cup'; + const CAN_CUP = 'Can cup'; + const METRIC_CUP = 'Metric cup'; + const CUBIC_CENTIMETER = 'cm'; + const CUBIC_MILLIMETER = 'mm'; + const CUBIC_METER = 'm'; + const CUBIC_INCH = 'in'; + const CUBIC_FEET = 'ft'; + const CUBIC_YARD = 'yd'; +} diff --git a/Utils/Converter/WeightType.php b/Utils/Converter/WeightType.php index 585a469f7..6c3bcb1c3 100644 --- a/Utils/Converter/WeightType.php +++ b/Utils/Converter/WeightType.php @@ -30,11 +30,18 @@ use phpOMS\Datatypes\Enum; */ abstract class WeightType extends Enum { - const MILLIGRAM = 'mg'; + const MICROGRAM = 'mg'; + const MILLIGRAM = 'mug'; const GRAM = 'g'; const KILOGRAM = 'kg'; - const TONS = 't'; + const METRIC_TONS = 't'; const POUNDS = 'lb'; const OUNCES = 'oz'; const STONES = 'st'; + const GRAIN = 'gr'; + const CARAT = 'ct'; + const LONG_TONS = 'uk t'; + const SHORT_TONS = 'us ton'; + const TROY_POUNDS = 't lb'; + const TROY_OUNCES = 't oz'; }