Zum Inhalt

Maßeinheiten

Beispiel

Dimension

\Alvine\Measure\SI::meter();
\Alvine\Measure\SI::candela();
\Alvine\Measure\SI::kilogram();
\Alvine\Measure\SI::kelvin();

$meter = new \Alvine\Measure\BaseUnit("m");
$candela = new \Alvine\Measure\BaseUnit('cd');
echo $meter->getDimension();
echo \Alvine\Types\Character::LINEFEED;
echo $candela->getDimension();

Fuß

// Fuß
$foot=\Alvine\Measure\NonSI::foot();

// Konverter Meilen nach Meter
$footToKilometer=$foot->getConverterTo(\Alvine\Measure\MetricPrefix::kilo(\Alvine\Measure\SI::meter()));

// Zu berechnende Fuß
$distanceInFoot=4356;

/**
 * Auf zwei Stellen gerundet
 */
$distanceInKilometers=$footToKilometer->convert($distanceInFoot, 2);

// Ausgabe
echo $distanceInKilometers;
// -> 1.33 km

Miles

// Längeneinheit Meter
$meter=\Alvine\Measure\SI::meter();

// Meile als Teiler von Metern
$mile=\Alvine\Measure\NonSI::mile();

// Konverter Meilen nach Meter
$mileToKilometer=$mile->getConverterTo(\Alvine\Measure\MetricPrefix::kilo($meter));

// Zu berechnende Meilen
$distanceInMiles=23.0;

// Drei Stellen gerundet
$distanceInKilometers=$mileToKilometer->convert($distanceInMiles, 3);

// Ausgabe
echo $distanceInKilometers;
// -> 37.015

Menge

// Fuß
$foot=\Alvine\Measure\SI::METER()->times(3048)->divide(10000);

// Meßwert in Meter
$measure=new \Alvine\Measure\Measure('250.10', \Alvine\Measure\SI::METER());
// Label für den Formatter setzen
\Alvine\Measure\DefaultFormatter::getInstance()->label($foot, 'ft');

// Umrechnung in Fuß
$feet=$measure->to($foot, 2);

echo (string) $feet;
// -> 820.54 ft

Geld & Währung

// Währungsobjekte holen
$USD=\Alvine\Measure\Economics\Currencies::getCurrency('USD');
$EUR=\Alvine\Measure\Economics\Currencies::getCurrency('EUR');

// Währungssymbole holen und setzen
\Alvine\Measure\Formatter\UnitFormatter::getDefaultFormatter()->label($USD, \Alvine\I18n\Resource\CurrencySigns::getSign('USD'));
\Alvine\Measure\Formatter\UnitFormatter::getDefaultFormatter()->label($EUR, \Alvine\I18n\Resource\CurrencySigns::getSign('EUR'));

// Wechselkurs läuft immer über eine Referenzwährung
\Alvine\Measure\Economics\ReferenceCurrency::setCurrentReference($USD);
\Alvine\Measure\Economics\ReferenceCurrency::getCurrentReference()->setExchangeRate($EUR, 1.17);

// Angabe des Verbrauchs in Meilen pro Galone (20 mi/gal)
$carMileage=\Alvine\Measure\Amount::valueOf(20, \Alvine\Measure\NonSI::mile()->divide(\Alvine\Measure\NonSI::gallonLiquidUS())); 
// Kosten des Benzins in Euro / Liter (1.2 €/L)
$gazPrice=\Alvine\Measure\Amount::valueOf(1.2, $EUR->divide(\Alvine\Measure\NonSI::liter())); 
// Gefahrene Distanz in Kilometern (400 km)
$tripDistance=\Alvine\Measure\Amount::valueOf(400, \Alvine\Measure\MetricPrefix::kilo(\Alvine\Measure\SI::meter())); 

// Kosten der Reise in Euro
$tripCostEUR=$tripDistance->divide($carMileage)->times($gazPrice)->to($EUR);
// Kosten in Dollar (Umrechung)
$tripCostUSD = $tripCostEUR->to($USD);

// Displays cost.
echo("Car Miles = $carMileage\n");
// -> Car Miles = 20 mi/gal
echo("Gas Prize = $gazPrice\n");
// -> Gas Prize = (1.20 ± 0.0) €/l
echo("Trip Distance = $tripDistance\n");
// -> Trip Distance = 400 (m)*1000
echo ("============================\n");
// -> ============================
echo("Trip cost = ".$tripCostEUR." (".$tripCostUSD.")\n");
// ->  Trip cost = (56.45 ± 0.0) € ((66.05 ± 0.0) $)

// Ausgabe ohne Fehler
\Alvine\Measure\Formatter\AmountFormatter::getDefaultFormatter()->setFloatFormat('%amount$s %unit$s');
echo("Trip cost = ".$tripCostEUR." (".$tripCostUSD.")");