Android Speed Readable Format convertSpeed(float speed, int fromScale, int toScale)

Here you can find the source of convertSpeed(float speed, int fromScale, int toScale)

Description

convert a speed measurement from one scale to another

License

Open Source License

Parameter

Parameter Description
speed the speed measurement to convert
fromScale the from scale, as defined by one of the speed related constants in this class
toScale the to scale, as defined by one of the speed related constants in this class

Exception

Parameter Description
IllegalArgumentException if an invalid scale is provided

Return

the converted speed measurement

Declaration

public static float convertSpeed(float speed, int fromScale, int toScale) 

Method Source Code

//package com.java2s;
/*/*from   w w  w.j  ava2  s.c  o m*/
 * Copyright (C) 2012, 2013 The MaGDAA Project
 *
 * This file is part of the MaGDAA Library Software
 *
 * MaGDAA Library Software is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 3 of the License, or
 * (at your option) any later version.
 *
 * This source code is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this source code; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

public class Main {
    /**
     * constant to define the kilometers per hour speed scale
     */
    public static final int KPH = 10;
    /**
     * constant to define the miles per hour speed scale
     */
    public static final int MPH = 11;

    /**
     * convert a speed measurement from one scale to another
     * @param speed the speed measurement to convert
     * @param fromScale the from scale, as defined by one of the speed related constants in this class
     * @param toScale the to scale, as defined by one of the speed related constants in this class
     * @return the converted speed measurement
     * @throws IllegalArgumentException if an invalid scale is provided
     */
    public static float convertSpeed(float speed, int fromScale, int toScale) {
        switch (fromScale) {
        case KPH:
            // convert from kilometers per hour
            switch (toScale) {
            case MPH:
                return convertFromKphToMph(speed);
            default:
                throw new IllegalArgumentException("invalid toScale");
            }
        case MPH:
            // convert from miles per hour
            switch (toScale) {
            case KPH:
                return convertFromMphToKph(speed);
            default:
                throw new IllegalArgumentException("invalid toScale");
            }
        default:
            throw new IllegalArgumentException("invalid fromScale");
        }
    }

    private static float convertFromKphToMph(float kph) {
        float conversionFactor = 1.609344f;
        return kph / conversionFactor;
    }

    private static float convertFromMphToKph(float mph) {
        float conversionFactor = 1.609344f;
        return mph * conversionFactor;
    }
}

Related

  1. speedToKMH(double kmh)
  2. speedToMPH(double kmh)
  3. speedToPace(float speedInMetersPerSecond, boolean imperial)