Density.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. <?php
  2. /**
  3. * Zend Framework
  4. *
  5. * LICENSE
  6. *
  7. * This source file is subject to the new BSD license that is bundled
  8. * with this package in the file LICENSE.txt.
  9. * It is also available through the world-wide-web at this URL:
  10. * http://framework.zend.com/license/new-bsd
  11. * If you did not receive a copy of the license and are unable to
  12. * obtain it through the world-wide-web, please send an email
  13. * to license@zend.com so we can send you a copy immediately.
  14. *
  15. * @category Zend
  16. * @package Zend_Measure
  17. * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
  18. * @license http://framework.zend.com/license/new-bsd New BSD License
  19. * @version $Id$
  20. */
  21. /**
  22. * Implement needed classes
  23. */
  24. #require_once 'Zend/Measure/Abstract.php';
  25. #require_once 'Zend/Locale.php';
  26. /**
  27. * Class for handling density conversions
  28. *
  29. * @category Zend
  30. * @package Zend_Measure
  31. * @subpackage Zend_Measure_Density
  32. * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
  33. * @license http://framework.zend.com/license/new-bsd New BSD License
  34. */
  35. class Zend_Measure_Density extends Zend_Measure_Abstract
  36. {
  37. const STANDARD = 'KILOGRAM_PER_CUBIC_METER';
  38. const ALUMINIUM = 'ALUMINIUM';
  39. const COPPER = 'COPPER';
  40. const GOLD = 'GOLD';
  41. const GRAIN_PER_CUBIC_FOOT = 'GRAIN_PER_CUBIC_FOOT';
  42. const GRAIN_PER_CUBIC_INCH = 'GRAIN_PER_CUBIC_INCH';
  43. const GRAIN_PER_CUBIC_YARD = 'GRAIN_PER_CUBIC_YARD';
  44. const GRAIN_PER_GALLON = 'GRAIN_PER_GALLON';
  45. const GRAIN_PER_GALLON_US = 'GRAIN_PER_GALLON_US';
  46. const GRAM_PER_CUBIC_CENTIMETER = 'GRAM_PER_CUBIC_CENTIMETER';
  47. const GRAM_PER_CUBIC_DECIMETER = 'GRAM_PER_CUBIC_DECIMETER';
  48. const GRAM_PER_CUBIC_METER = 'GRAM_PER_CUBIC_METER';
  49. const GRAM_PER_LITER = 'GRAM_PER_LITER';
  50. const GRAM_PER_MILLILITER = 'GRAM_PER_MILLILITER';
  51. const IRON = 'IRON';
  52. const KILOGRAM_PER_CUBIC_CENTIMETER = 'KILOGRAM_PER_CUBIC_CENTIMETER';
  53. const KILOGRAM_PER_CUBIC_DECIMETER = 'KILOGRAM_PER_CUBIC_DECIMETER';
  54. const KILOGRAM_PER_CUBIC_METER = 'KILOGRAM_PER_CUBIC_METER';
  55. const KILOGRAM_PER_CUBIC_MILLIMETER = 'KILOGRAM_PER_CUBIC_MILLIMETER';
  56. const KILOGRAM_PER_LITER = 'KILOGRAM_PER_LITER';
  57. const KILOGRAM_PER_MILLILITER = 'KILOGRAM_PER_MILLILITER';
  58. const LEAD = 'LEAD';
  59. const MEGAGRAM_PER_CUBIC_CENTIMETER = 'MEGAGRAM_PER_CUBIC_CENTIMETER';
  60. const MEGAGRAM_PER_CUBIC_DECIMETER = 'MEGAGRAM_PER_CUBIC_DECIMETER';
  61. const MEGAGRAM_PER_CUBIC_METER = 'MEGAGRAM_PER_CUBIC_METER';
  62. const MEGAGRAM_PER_LITER = 'MEGAGRAM_PER_LITER';
  63. const MEGAGRAM_PER_MILLILITER = 'MEGAGRAM_PER_MILLILITER';
  64. const MICROGRAM_PER_CUBIC_CENTIMETER = 'MICROGRAM_PER_CUBIC_CENTIMETER';
  65. const MICROGRAM_PER_CUBIC_DECIMETER = 'MICROGRAM_PER_CUBIC_DECIMETER';
  66. const MICROGRAM_PER_CUBIC_METER = 'MICROGRAM_PER_CUBIC_METER';
  67. const MICROGRAM_PER_LITER = 'MICROGRAM_PER_LITER';
  68. const MICROGRAM_PER_MILLILITER = 'MICROGRAM_PER_MILLILITER';
  69. const MILLIGRAM_PER_CUBIC_CENTIMETER = 'MILLIGRAM_PER_CUBIC_CENTIMETER';
  70. const MILLIGRAM_PER_CUBIC_DECIMETER = 'MILLIGRAM_PER_CUBIC_DECIMETER';
  71. const MILLIGRAM_PER_CUBIC_METER = 'MILLIGRAM_PER_CUBIC_METER';
  72. const MILLIGRAM_PER_LITER = 'MILLIGRAM_PER_LITER';
  73. const MILLIGRAM_PER_MILLILITER = 'MILLIGRAM_PER_MILLILITER';
  74. const OUNCE_PER_CUBIC_FOOT = 'OUNCE_PER_CUBIC_FOOT';
  75. const OUNCR_PER_CUBIC_FOOT_TROY = 'OUNCE_PER_CUBIC_FOOT_TROY';
  76. const OUNCE_PER_CUBIC_INCH = 'OUNCE_PER_CUBIC_INCH';
  77. const OUNCE_PER_CUBIC_INCH_TROY = 'OUNCE_PER_CUBIC_INCH_TROY';
  78. const OUNCE_PER_CUBIC_YARD = 'OUNCE_PER_CUBIC_YARD';
  79. const OUNCE_PER_CUBIC_YARD_TROY = 'OUNCE_PER_CUBIC_YARD_TROY';
  80. const OUNCE_PER_GALLON = 'OUNCE_PER_GALLON';
  81. const OUNCE_PER_GALLON_US = 'OUNCE_PER_GALLON_US';
  82. const OUNCE_PER_GALLON_TROY = 'OUNCE_PER_GALLON_TROY';
  83. const OUNCE_PER_GALLON_US_TROY = 'OUNCE_PER_GALLON_US_TROY';
  84. const POUND_PER_CIRCULAR_MIL_FOOT = 'POUND_PER_CIRCULAR_MIL_FOOT';
  85. const POUND_PER_CUBIC_FOOT = 'POUND_PER_CUBIC_FOOT';
  86. const POUND_PER_CUBIC_INCH = 'POUND_PER_CUBIC_INCH';
  87. const POUND_PER_CUBIC_YARD = 'POUND_PER_CUBIC_YARD';
  88. const POUND_PER_GALLON = 'POUND_PER_GALLON';
  89. const POUND_PER_KILOGALLON = 'POUND_PER_KILOGALLON';
  90. const POUND_PER_MEGAGALLON = 'POUND_PER_MEGAGALLON';
  91. const POUND_PER_GALLON_US = 'POUND_PER_GALLON_US';
  92. const POUND_PER_KILOGALLON_US = 'POUND_PER_KILOGALLON_US';
  93. const POUND_PER_MEGAGALLON_US = 'POUND_PER_MEGAGALLON_US';
  94. const SILVER = 'SILVER';
  95. const SLUG_PER_CUBIC_FOOT = 'SLUG_PER_CUBIC_FOOT';
  96. const SLUG_PER_CUBIC_INCH = 'SLUG_PER_CUBIC_INCH';
  97. const SLUG_PER_CUBIC_YARD = 'SLUG_PER_CUBIC_YARD';
  98. const SLUG_PER_GALLON = 'SLUG_PER_GALLON';
  99. const SLUG_PER_GALLON_US = 'SLUG_PER_GALLON_US';
  100. const TON_PER_CUBIC_FOOT_LONG = 'TON_PER_CUBIC_FOOT_LONG';
  101. const TON_PER_CUBIC_FOOT = 'TON_PER_CUBIC_FOOT';
  102. const TON_PER_CUBIC_INCH_LONG = 'TON_PER_CUBIC_INCH_LONG';
  103. const TON_PER_CUBIC_INCH = 'TON_PER_CUBIC_INCH';
  104. const TON_PER_CUBIC_YARD_LONG = 'TON_PER_CUBIC_YARD_LONG';
  105. const TON_PER_CUBIC_YARD = 'TON_PER_CUBIC_YARD';
  106. const TON_PER_GALLON_LONG = 'TON_PER_GALLON_LONG';
  107. const TON_PER_GALLON_US_LONG = 'TON_PER_GALLON_US_LONG';
  108. const TON_PER_GALLON = 'TON_PER_GALLON';
  109. const TON_PER_GALLON_US = 'TON_PER_GALLON_US';
  110. const TONNE_PER_CUBIC_CENTIMETER = 'TONNE_PER_CUBIC_CENTIMETER';
  111. const TONNE_PER_CUBIC_DECIMETER = 'TONNE_PER_CUBIC_DECIMETER';
  112. const TONNE_PER_CUBIC_METER = 'TONNE_PER_CUBIC_METER';
  113. const TONNE_PER_LITER = 'TONNE_PER_LITER';
  114. const TONNE_PER_MILLILITER = 'TONNE_PER_MILLILITER';
  115. const WATER = 'WATER';
  116. /**
  117. * Calculations for all density units
  118. *
  119. * @var array
  120. */
  121. protected $_units = array(
  122. 'ALUMINIUM' => array('2643', 'aluminium'),
  123. 'COPPER' => array('8906', 'copper'),
  124. 'GOLD' => array('19300', 'gold'),
  125. 'GRAIN_PER_CUBIC_FOOT' => array('0.0022883519', 'gr/ft³'),
  126. 'GRAIN_PER_CUBIC_INCH' => array('3.9542721', 'gr/in³'),
  127. 'GRAIN_PER_CUBIC_YARD' => array('0.000084753774', 'gr/yd³'),
  128. 'GRAIN_PER_GALLON' => array('0.014253768', 'gr/gal'),
  129. 'GRAIN_PER_GALLON_US' => array('0.017118061', 'gr/gal'),
  130. 'GRAM_PER_CUBIC_CENTIMETER' => array('1000', 'g/cm³'),
  131. 'GRAM_PER_CUBIC_DECIMETER' => array('1', 'g/dm³'),
  132. 'GRAM_PER_CUBIC_METER' => array('0.001', 'g/m³'),
  133. 'GRAM_PER_LITER' => array('1', 'g/l'),
  134. 'GRAM_PER_MILLILITER' => array('1000', 'g/ml'),
  135. 'IRON' => array('7658', 'iron'),
  136. 'KILOGRAM_PER_CUBIC_CENTIMETER' => array('1000000', 'kg/cm³'),
  137. 'KILOGRAM_PER_CUBIC_DECIMETER' => array('1000', 'kg/dm³'),
  138. 'KILOGRAM_PER_CUBIC_METER' => array('1', 'kg/m³'),
  139. 'KILOGRAM_PER_CUBIC_MILLIMETER' => array('1000000000', 'kg/l'),
  140. 'KILOGRAM_PER_LITER' => array('1000', 'kg/ml'),
  141. 'KILOGRAM_PER_MILLILITER' => array('1000000', 'kg/ml'),
  142. 'LEAD' => array('11370', 'lead'),
  143. 'MEGAGRAM_PER_CUBIC_CENTIMETER' => array('1.0e+9', 'Mg/cm³'),
  144. 'MEGAGRAM_PER_CUBIC_DECIMETER' => array('1000000', 'Mg/dm³'),
  145. 'MEGAGRAM_PER_CUBIC_METER' => array('1000', 'Mg/m³'),
  146. 'MEGAGRAM_PER_LITER' => array('1000000', 'Mg/l'),
  147. 'MEGAGRAM_PER_MILLILITER' => array('1.0e+9', 'Mg/ml'),
  148. 'MICROGRAM_PER_CUBIC_CENTIMETER' => array('0.001', 'µg/cm³'),
  149. 'MICROGRAM_PER_CUBIC_DECIMETER' => array('1.0e-6', 'µg/dm³'),
  150. 'MICROGRAM_PER_CUBIC_METER' => array('1.0e-9', 'µg/m³'),
  151. 'MICROGRAM_PER_LITER' => array('1.0e-6', 'µg/l'),
  152. 'MICROGRAM_PER_MILLILITER' => array('0.001', 'µg/ml'),
  153. 'MILLIGRAM_PER_CUBIC_CENTIMETER' => array('1', 'mg/cm³'),
  154. 'MILLIGRAM_PER_CUBIC_DECIMETER' => array('0.001', 'mg/dm³'),
  155. 'MILLIGRAM_PER_CUBIC_METER' => array('0.000001', 'mg/m³'),
  156. 'MILLIGRAM_PER_LITER' => array('0.001', 'mg/l'),
  157. 'MILLIGRAM_PER_MILLILITER' => array('1', 'mg/ml'),
  158. 'OUNCE_PER_CUBIC_FOOT' => array('1.001154', 'oz/ft³'),
  159. 'OUNCE_PER_CUBIC_FOOT_TROY' => array('1.0984089', 'oz/ft³'),
  160. 'OUNCE_PER_CUBIC_INCH' => array('1729.994', 'oz/in³'),
  161. 'OUNCE_PER_CUBIC_INCH_TROY' => array('1898.0506', 'oz/in³'),
  162. 'OUNCE_PER_CUBIC_YARD' => array('0.037079776', 'oz/yd³'),
  163. 'OUNCE_PER_CUBIC_YARD_TROY' => array('0.040681812', 'oz/yd³'),
  164. 'OUNCE_PER_GALLON' => array('6.2360233', 'oz/gal'),
  165. 'OUNCE_PER_GALLON_US' => array('7.4891517', 'oz/gal'),
  166. 'OUNCE_PER_GALLON_TROY' => array('6.8418084', 'oz/gal'),
  167. 'OUNCE_PER_GALLON_US_TROY' => array('8.2166693', 'oz/gal'),
  168. 'POUND_PER_CIRCULAR_MIL_FOOT' => array('2.9369291', 'lb/cmil ft'),
  169. 'POUND_PER_CUBIC_FOOT' => array('16.018463', 'lb/in³'),
  170. 'POUND_PER_CUBIC_INCH' => array('27679.905', 'lb/in³'),
  171. 'POUND_PER_CUBIC_YARD' => array('0.59327642', 'lb/yd³'),
  172. 'POUND_PER_GALLON' => array('99.776373', 'lb/gal'),
  173. 'POUND_PER_KILOGALLON' => array('0.099776373', 'lb/kgal'),
  174. 'POUND_PER_MEGAGALLON' => array('0.000099776373', 'lb/Mgal'),
  175. 'POUND_PER_GALLON_US' => array('119.82643', 'lb/gal'),
  176. 'POUND_PER_KILOGALLON_US' => array('0.11982643', 'lb/kgal'),
  177. 'POUND_PER_MEGAGALLON_US' => array('0.00011982643', 'lb/Mgal'),
  178. 'SILVER' => array('10510', 'silver'),
  179. 'SLUG_PER_CUBIC_FOOT' => array('515.37882', 'slug/ft³'),
  180. 'SLUG_PER_CUBIC_INCH' => array('890574.6', 'slug/in³'),
  181. 'SLUG_PER_CUBIC_YARD' => array('19.088104', 'slug/yd³'),
  182. 'SLUG_PER_GALLON' => array('3210.2099', 'slug/gal'),
  183. 'SLUG_PER_GALLON_US' => array('3855.3013', 'slug/gal'),
  184. 'TON_PER_CUBIC_FOOT_LONG' => array('35881.358', 't/ft³'),
  185. 'TON_PER_CUBIC_FOOT' => array('32036.927', 't/ft³'),
  186. 'TON_PER_CUBIC_INCH_LONG' => array('6.2202987e+7', 't/in³'),
  187. 'TON_PER_CUBIC_INCH' => array('5.5359809e+7', 't/in³'),
  188. 'TON_PER_CUBIC_YARD_LONG' => array('1328.9392', 't/yd³'),
  189. 'TON_PER_CUBIC_YARD' => array('1186.5528', 't/yd³'),
  190. 'TON_PER_GALLON_LONG' => array('223499.07', 't/gal'),
  191. 'TON_PER_GALLON_US_LONG' => array('268411.2', 't/gal'),
  192. 'TON_PER_GALLON' => array('199522.75', 't/gal'),
  193. 'TON_PER_GALLON_US' => array('239652.85', 't/gal'),
  194. 'TONNE_PER_CUBIC_CENTIMETER' => array('1.0e+9', 't/cm³'),
  195. 'TONNE_PER_CUBIC_DECIMETER' => array('1000000', 't/dm³'),
  196. 'TONNE_PER_CUBIC_METER' => array('1000', 't/m³'),
  197. 'TONNE_PER_LITER' => array('1000000', 't/l'),
  198. 'TONNE_PER_MILLILITER' => array('1.0e+9', 't/ml'),
  199. 'WATER' => array('1000', 'water'),
  200. 'STANDARD' => 'KILOGRAM_PER_CUBIC_METER'
  201. );
  202. }