度分秒轉換函式

2021-10-07 22:56:03 字數 2146 閱讀 9079

也可以用於小時、分鐘、秒的轉換,但中間的分隔符只能是一位

msgbox dtodms

(1.51

,"度分秒"

)msgbox dmstod

("12度3分4秒"

)msgbox dmstod

("12h3m4.56s"

)msgbox dmstod

("12°3'4"")

支援度分秒之間使用任意非數字字元分隔,支援度分秒中存在小數

function dmstod

(dms as string)

dim sp(2

) as single

dim i as integer

dim sta as integer

on error resume next

dms=

trim

(dms

)do while isnumeric

(mid

(dms

, i,1)

) or mid

(dms

, i,1)

="."

i = i +

1loopsp(

0)=left

(dms

, i -1)

do until isnumeric

(mid

(dms

, i,1)

) or i >

len(

dms)

i = i +

1loop

if i <=

len(

dms) then

sta = i

do while isnumeric

(mid

(dms

, i,1)

) or mid

(dms

, i,1)

="."

i = i +

1 loop

sp(1

)=mid(

dms, sta, i - sta)

do until isnumeric

(mid

(dms

, i,1)

) or i >

len(

dms)

i = i +

1 loop

if i <=

len(

dms) then

sta = i

do while isnumeric

(mid

(dms

, i,1)

) or mid

(dms

, i,1)

="."

i = i +

1 loop

sp(2

)=mid(

dms, sta, i - sta)

end if

end if

dmstod =

round(sp

(0)+

sp(1)

/60+sp

(2)/

3600,4

)end function

支援自定義分隔符,支援自定義秒的小數字數

function dtodms

(d as single, optional spstr as string =

"°'"

"", optional deci as long =0)

dim sp(2

) as stringsp(

0)=int(d

)sp(1

)=int((d

-sp(0

))*60

)sp(2

)=round((

d-sp(

0)-sp

(1)/

60)*60

*60, deci)

dtodms =sp(

0)&mid

(spstr,1,

1)&sp

(1)&

mid(spstr,2,

1)&sp

(2)&

mid(spstr,3,

1)end function

度分秒和度的轉換

輸入的經緯度是 118.8000745,轉換為度分秒的格式 計算 度 就是 118度 分 用小數部分0.8000745 60 48.00447,分就是48分 秒 用分的小數部分 0.00447 60 0.2682 秒 寫了個qangle類,標頭檔案qangle.h 1 ifndef qangle h...

python分秒換算 如何將度分秒轉換為度分

我從gps接收緯度和經度,格式如下 緯度 北緯78 55 44.29458 我需要將此資料轉換為 緯度 78.928888889 我在這裡找到了這個 linkimport re def dms2dd degrees,minutes,seconds,direction dd float degrees...

EXCEL資料處理 經緯度轉換 度分秒轉換為小數

業務描述 紅框內110 10 15 這種格式的經度,我想轉換為110.36534這種格式。步驟 1.現將110 10 15 轉換為110度10分15秒這樣的格式。2.使用公式 left a2,find 度 a2 1 mid a2,find 度 a2 1,find 分 a2 find 度 a2 1 6...