์ด ๊ณ์ฐ๊ธฐ์ ๊ธฐ๋ฅ
์๊ฐ๋๋ณ ํ์ ์๊ฐ ๊ณ์ฐ๊ธฐ๋ ํ ๋์(๋์ A)์ ์์ ๋ ์๊ฐ์ ๋ค๋ฅธ ๋์(๋์ B)์ ํ์ง ์๊ฐ์ผ๋ก ๋ณํํด ์ค๋๋ค. ํ์ ์ธ๊ณ์(UTC)๋ฅผ ๊ธฐ์ค์ผ๋ก ํ ๊ฐ ์๊ฐ๋์ ์คํ์ ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ ์ธ๊ณ ์ด๋ค ์๊ฐ๋ ์กฐํฉ์๋ ์ ์ฉ๋๋ฉฐ, ํน์ ๊ตญ๊ฐ์๋ง ํ์ ๋์ง ์๋ ๋ฒ์ฉ ๋๊ตฌ์ ๋๋ค.
์ฌ์ฉ ๋ฐฉ๋ฒ
๋จผ์ ๋์ A์ ์๊ณ์ ํ์๋๋ ๊ทธ๋๋ก ํ์ ์๊ฐ(0~23)๊ณผ ๋ถ์ ์ ๋ ฅํ์ธ์. ๊ทธ๋ค์ ๊ฐ ๋์์ UTC ์คํ์ ์ ์๊ฐ ๋จ์๋ก ์ ๋ ฅํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๊ฒจ์ธ์ฒ ๋ด์์ -5, ๋ฐ๋์ 0, ํ๋ฆฌ๋ +1์ด๋ฉฐ, ์ธ๋๋ +5.5๋ฅผ ์ฌ์ฉํฉ๋๋ค. 0.25 ๋จ์ ์ ๋ ฅ์ ์ง์ํ๋ฏ๋ก 30๋ถยท15๋ถ ๋จ์ ์๊ฐ๋๋ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ๊ฒฐ๊ณผ๋ก๋ ๋์ B์ ํ์ง ์๊ฐ๊ณผ ํจ๊ป, ๊ฐ์ ๋ ์ธ์งยท๋ค์ ๋ ์ธ์งยท์ ๋ ์ธ์ง๊ฐ ํ์๋ฉ๋๋ค.
๊ณต์ ์ค๋ช
ํต์ฌ ๊ด๊ณ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
$$\text{local\_time\_B} = \text{local\_time\_A} + (\text{offset\_B} - \text{offset\_A})$$๋์ A์ ์๊ฐ์ ๋ถ ๋จ์๋ก ํ์ฐํ ๋ค, ์คํ์ ์ฐจ์ด(๋ถ ๋จ์)๋ฅผ ๋ํ๊ณ , ์ด๋ฅผ ๋ค์ 24์๊ฐ ํ์์ผ๋ก ์ ๋ฆฌํฉ๋๋ค. 1440๋ถ(24์๊ฐ)์ ๋๊ฑฐ๋ ๋ชจ์๋ผ๋ฉด ๊ทธ๋งํผ ๋ ์ง๊ฐ ํ๋ฃจ ์ด๋ํฉ๋๋ค.
$$\begin{gathered} T_B = \left(\,T_A + 60\cdot(\text{Offset}_B - \text{Offset}_A)\,\right) \bmod 1440 \\[1.5em] \text{where}\quad \left\{ \begin{aligned} T_A &= 60\cdot\text{Hour} + \text{Minute} \\ \text{Offset}_A &= \text{City A UTC Offset} \\ \text{Offset}_B &= \text{City B UTC Offset} \end{aligned} \right. \end{gathered}$$
๊ณ์ฐ ์์
๋ด์(์คํ์ -5)์์ 9:00์ ํ์๊ฐ ์กํ ์๋ค๊ณ ๊ฐ์ ํด ๋ด ์๋ค. ํ๋ฆฌ(์คํ์ +1)์์๋ ๋ช ์์ผ๊น์? ์คํ์ ์ฐจ์ด๋ \(1 - (-5) = 6\)์๊ฐ์ ๋๋ค. ๋ฐ๋ผ์ ํ๋ฆฌ ์๊ฐ์ \(9{:}00 + 6{:}00 = \textbf{15{:}00}\)์ด๋ฉฐ, ๊ฐ์ ๋ ์ ๋๋ค. ๊ณ์ฐ๊ธฐ๋ ๋ ์ง ์ด๋ 0๊ณผ ํจ๊ป 15:00์ ๋ฐํํฉ๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
์ผ๊ด ์ ์ฝ ์๊ฐ์ (์๋จธํ์)๋ฅผ ๊ณ ๋ คํด์ผ ํ๋์? ๋ค. ์๋จธํ์์ ๋์์ ์คํ์ ์ ๋ฐ๊ฟ๋๋ค(์: ๋ด์์ -5์์ -4๋ก ๋ณ๊ฒฝ). ํ์ ๋ ์ง์ ์ค์ ๋ก ์ ์ฉ๋๋ ์คํ์ ์ ์ ๋ ฅํ์ธ์.
30๋ถ ๋จ์ ์๊ฐ๋๋ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ๋์? ์ธ๋๋ 5.5, ๋คํ์ 5.75์ฒ๋ผ ์์๋ก ์ ๋ ฅํ๋ฉด ๋ฉ๋๋ค. ๋จ์๊ฐ 0.25์ด๋ฏ๋ก 15๋ถ ๋จ์ ์๊ฐ๋๋ ํจ๊ป ์ฒ๋ฆฌ๋ฉ๋๋ค.
"๋ค์ ๋ "์ ๋ฌด์จ ๋ป์ธ๊ฐ์? ์คํ์ ์ฐจ์ด๋ฅผ ๋ํ์ ๋ ์๊ฐ์ด ์์ ์ ๋๊ธฐ๋ฉด, ํ์๋ ๋์ B ๊ธฐ์ค์ผ๋ก ๋ค์ ๋ ์ ํด๋นํฉ๋๋ค. "์ ๋ "์ ๊ทธ๋ณด๋ค ์ด๋ฅธ ๋ ๋ก ๋์ด๊ฐ๋ ๊ฒฝ์ฐ๋ฅผ ๋งํฉ๋๋ค.