经度是分和秒是按60进位,如果要做运算第一步就是转换成浮点数,之后就是计算和还原。

using System.Text.RegularExpressions;

public static double DegreeFromString(string str)

{

Match match = Regex.Match(str,

@"(?<hour>[0-9]+)°(?<minute>[0-9]+)(′|')(?<second>[0-9]+(\.[0-9]+)?)(″|""|'')");

if (match.Success)

{

double hour = 0, minute = 0, second = 0;

double.TryParse(match.Result("${hour}"), out hour);

double.TryParse(match.Result("${minute}"), out minute);

double.TryParse(match.Result("${second}"), out second);

return hour + minute / 60 + second / 3600;

}

else return 0;

} public static string DegreeToString(double degree)

{

double minute = (degree - (int)degree) * 60;

double second = (minute - (int)minute) * 60;

return string.Format(

"{0:#}°{1:#}′{2:#.00}″",

degree,

Math.Abs(minute),

Math.Abs(second));

} private void button1_Click(object sender, EventArgs e)

{

Console.WriteLine(DegreeToString(DegreeFromString("20°53'41''")));

Console.WriteLine(DegreeToString(DegreeFromString("10°11'20.5''")));

Console.WriteLine(

DegreeToString(DegreeFromString("20°53'41''") - DegreeFromString("10°11'20.5''")));

Console.WriteLine(

DegreeToString(DegreeFromString("10°11'20.5''") - DegreeFromString("20°53'41''")));

}

输出:

21°54′41.00″
10°11′20.50″
11°42′20.50″
-11°42′20.50″

from:http://www.csharpwin.com/csharpspace/9140r9620.shtml

C#经纬度加减运算(度°分′秒″格式)的更多相关文章

  1. Linux中日期的加减运算

    Linux中日期的加减运算 目录 在显示方面 在设定时间方面 时间的加减 正文 date命令本身提供了日期的加减运算. date 可以用来显示或设定系统的日期与时间. 回到顶部 在显示方面 使用者可以 ...

  2. velocity加减运算注意格式 ,加减号的左右都要有空格

    velocity加减运算注意格式 ,加减号的左右都要有空格 #set( $left= $!biz.value - $vMUtils.getReturnMoney($!biz.billBuy) )

  3. [Swift]LeetCode592. 分数加减运算 | Fraction Addition and Subtraction

    Given a string representing an expression of fraction addition and subtraction, you need to return t ...

  4. C语言中指针变量的加减运算

    1.指针变量中存放的是地址值,也就是一个数字地址,例如某指针变量中的值是0x20000000,表示表示此指针变量存放的是内存中位于0x20000000地方的内存地址.指针变量可以加减,但是只能与整型数 ...

  5. 大整数加减运算的C语言实现

    目录 大整数加减运算的C语言实现 一. 问题提出 二. 代码实现 三. 效果验证 大整数加减运算的C语言实现 标签: 大整数加减 C 一. 问题提出 培训老师给出一个题目:用C语言实现一个大整数计算器 ...

  6. void *指针的加减运算

    1.手工写了一个程序验证void *指针加减运算移动几个字节: //本程序验证空类型指针减1移动几个字节 #include <stdio.h> int main(int argc, cha ...

  7. Leetcode 592.分数加减运算

    分数加减运算 给定一个表示分数加减运算表达式的字符串,你需要返回一个字符串形式的计算结果. 这个结果应该是不可约分的分数,即最简分数. 如果最终结果是一个整数,例如 2,你需要将它转换成分数形式,其分 ...

  8. C语言中指针的加减运算

    参考文章,值得一看 char arr[3]; printf("arr:\n%d\n%d\n%d\n", arr, arr + 1, arr + 2); char *parr[3]; ...

  9. js实现文本框支持加减运算的方法

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/T ...

随机推荐

  1. dotnet core use Redis to publish and subscribe

    安装Redis 同样我这边再次使用Docker, 方便快捷: # 拉取镜像 docker pull redis # 运行镜像 docker run -d -p 6379:6379 --name red ...

  2. AES加密、解密(linux、window加密解密效果一致,支持中文)

    转自: http://sunfish.iteye.com/blog/2169158 import java.io.UnsupportedEncodingException; import java.s ...

  3. Python字典dict的基本使用

    可以将字典看作是特殊的列表,将下标0.1.2,表示成name,age,job. 程序列出了基本的增删改查,其余方法自行测试. 1.程序测试 #!/usr/bin/python # -*- coding ...

  4. Pygame01之游戏开发

    一.Pygame库 Pygame是一个利用SDL库写的游戏库,SDL库全名:Simple DirectMedia Layer,据说是SamLantinga写的大牛写的为了让Loki(公司)更好的向li ...

  5. Python-04-数据结构

    一.数字 整数 Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等. 计算机由于使用二进制,所以,有时候用十六进制表示 ...

  6. JS ES6中export和import详解

    1.Export 模块是独立的文件,该文件内部的所有的变量外部都无法获取.如果希望获取某个变量,必须通过export输出, // profile.js export var firstName = ' ...

  7. 怎样在python中写多行语句

    一般来说, 一行就是一条语句, 但有时语句过长不利于阅读, 一般会写成多行的形式, 这时需要在换行时使用反斜杠: \ name = "Lilei" age = 23 gender ...

  8. entity-framework-core – 实体框架核心RC2表名称复数

    参考地址:https://docs.microsoft.com/zh-cn/ef/core/modeling/relational/tables http://www.voidcn.com/artic ...

  9. vue的交互

    交互     Vue做交互需要引入一个库:vue-resouce.js     get:      post     jsonp   <script src="vue.js" ...

  10. CSS选取第一个、最后一个、偶数、奇数、第n个标签元素

    1.first-child first-child表示选择列表中的第一个标签.例如:li:first-child{background:#fff} 2.last-child last-child表示选 ...