Java tutorial
//package com.java2s; /* * 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/> */ 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; } }