mirror of
https://github.com/Karaka-Management/phpOMS.git
synced 2026-01-25 07:38:40 +00:00
More converter functions implemented
This commit is contained in:
parent
0b38cc8005
commit
5d1e7429de
0
Utils/Converter/AngleType.php
Normal file
0
Utils/Converter/AngleType.php
Normal file
46
Utils/Converter/AreaType.php
Normal file
46
Utils/Converter/AreaType.php
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
<?php
|
||||
/**
|
||||
* Orange Management
|
||||
*
|
||||
* PHP Version 7.0
|
||||
*
|
||||
* @category TBD
|
||||
* @package TBD
|
||||
* @author OMS Development Team <dev@oms.com>
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
* @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 <dev@oms.com>
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
* @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';
|
||||
}
|
||||
0
Utils/Converter/EnergyPowerType.php
Normal file
0
Utils/Converter/EnergyPowerType.php
Normal file
43
Utils/Converter/FileSizeType.php
Normal file
43
Utils/Converter/FileSizeType.php
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
<?php
|
||||
/**
|
||||
* Orange Management
|
||||
*
|
||||
* PHP Version 7.0
|
||||
*
|
||||
* @category TBD
|
||||
* @package TBD
|
||||
* @author OMS Development Team <dev@oms.com>
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
* @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 <dev@oms.com>
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
* @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';
|
||||
}
|
||||
54
Utils/Converter/LengthType.php
Normal file
54
Utils/Converter/LengthType.php
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
<?php
|
||||
/**
|
||||
* Orange Management
|
||||
*
|
||||
* PHP Version 7.0
|
||||
*
|
||||
* @category TBD
|
||||
* @package TBD
|
||||
* @author OMS Development Team <dev@oms.com>
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
* @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 <dev@oms.com>
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
* @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';
|
||||
}
|
||||
|
|
@ -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 <d.eichhorn@oms.com>
|
||||
*/
|
||||
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 <d.eichhorn@oms.com>
|
||||
*/
|
||||
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 <d.eichhorn@oms.com>
|
||||
*/
|
||||
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 <d.eichhorn@oms.com>
|
||||
*/
|
||||
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 <d.eichhorn@oms.com>
|
||||
*/
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
0
Utils/Converter/PressureType.php
Normal file
0
Utils/Converter/PressureType.php
Normal file
68
Utils/Converter/SpeedType.php
Normal file
68
Utils/Converter/SpeedType.php
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
<?php
|
||||
/**
|
||||
* Orange Management
|
||||
*
|
||||
* PHP Version 7.0
|
||||
*
|
||||
* @category TBD
|
||||
* @package TBD
|
||||
* @author OMS Development Team <dev@oms.com>
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
* @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 <dev@oms.com>
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
* @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';
|
||||
}
|
||||
|
|
@ -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';
|
||||
}
|
||||
|
|
|
|||
42
Utils/Converter/TimeType.php
Normal file
42
Utils/Converter/TimeType.php
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
<?php
|
||||
/**
|
||||
* Orange Management
|
||||
*
|
||||
* PHP Version 7.0
|
||||
*
|
||||
* @category TBD
|
||||
* @package TBD
|
||||
* @author OMS Development Team <dev@oms.com>
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
* @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 <dev@oms.com>
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
* @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';
|
||||
}
|
||||
71
Utils/Converter/VolumeType.php
Normal file
71
Utils/Converter/VolumeType.php
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
<?php
|
||||
/**
|
||||
* Orange Management
|
||||
*
|
||||
* PHP Version 7.0
|
||||
*
|
||||
* @category TBD
|
||||
* @package TBD
|
||||
* @author OMS Development Team <dev@oms.com>
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
* @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 <dev@oms.com>
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
* @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';
|
||||
}
|
||||
|
|
@ -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';
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user