format Degree To Hms - Java java.lang

Java examples for java.lang:Math Geometry

Description

format Degree To Hms

Demo Code

/*/*w w w . j  av  a 2 s .  c  o m*/
 * Copyright (C) 2011-2012 Inaki Ortiz de Landaluce Saiz
 * 
 * This program 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 program 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 Lesser General Public 
 * License along with this program. If not, see 
 * <http://www.gnu.org/licenses/>
 */
//package com.java2s;
import java.text.DecimalFormat;

public class Main {

    public static String formatDegToHms(double degrees, double min,
            double max) {
        String s = "";
        // normalize values within the given range
        double hours = normalizeAngle(degrees, min, max) / 15.0;
        // take sign into account
        if (hours < 0) {
            hours = Math.abs(hours);
            s += "-";
        }
        // calculate minutes and seconds;
        double minutes = (hours - (int) hours) * 60.0;
        double seconds = (minutes - (int) minutes) * 60.0;
        s += new DecimalFormat("00").format((int) hours) + "h"
                + new DecimalFormat("00").format((int) minutes) + "m"
                + new DecimalFormat("00.000").format(seconds) + "s";
        return s;
    }

    /**
     * Normalizes an angle value between a given range
     * 
     * @param value
     *            the angle value
     * @param minValue
     *            minimum value of the range
     * @param maxValue
     *            maximum value of the range
     */
    public static double normalizeAngle(double value, double minValue,
            double maxValue) {
        double delta = maxValue - minValue;
        return ((value - minValue) % delta + delta) % delta + minValue;
    }
}

Related Tutorials