Here you can find the source of formatDegToDms(double degrees, double min, double max)
public static String formatDegToDms(double degrees, double min, double max)
//package com.java2s; /*/*from ww w . ja va2 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/> */ import java.text.DecimalFormat; public class Main { public static String formatDegToDms(double degrees, double min, double max) { String s = ""; // normalize values within the given range double deg = normalizeAngle(degrees, min, max); // take sign into account if (deg < 0) { deg = Math.abs(deg); s += "-"; } double arcmin = (deg - (int) deg) * 60.0; double arcsec = (arcmin - (int) arcmin) * 60.0; s += new DecimalFormat("00").format((int) deg) + "d" + new DecimalFormat("00").format((int) arcmin) + "'" + new DecimalFormat("00.00").format(arcsec) + "\""; 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; } }