์ด ๊ณ์ฐ๊ธฐ์ ๊ธฐ๋ฅ
๋ ์ง์ ๊ฐ์ ์ ๋ํ๊ธฐ ๊ณ์ฐ๊ธฐ๋ ์ ๋ ฅํ ๊ธฐ์ค์ผ์ ์ ์ ๋จ์ ๊ฐ์๋งํผ ์์ผ๋ก(๋๋ ์์๋ฅผ ์ ๋ ฅํ๋ฉด ๋ค๋ก) ์ด๋์์ผ ์ ํํ ๋ฌ๋ ฅ์์ ๋ ์ง๋ฅผ ์๋ ค ์ค๋๋ค. ๊ณ ์ ๋ ์ผ์๋ฅผ ๋ํ๋ ๊ฒ๊ณผ ๋ฌ๋ฆฌ, ๊ฐ์์ ๋ํ ๋๋ ๋์ฐฉํ๋ ๋ฌ์ด ์์ํ ๋ฌ๋ณด๋ค ์งง์ ๊ฒฝ์ฐ ๋ณ๋์ ์ฒ๋ฆฌ๊ฐ ํ์ํ๋ฐ, ์ด ๋๊ตฌ๊ฐ ๊ทธ ๋ถ๋ถ์ ์๋์ผ๋ก ํด๊ฒฐํด ์ค๋๋ค.
์ฌ์ฉ ๋ฐฉ๋ฒ
๊ธฐ์ค์ผ์ ์ ํํ๊ณ ๋ํ ๊ฐ์ ์๋ฅผ ์ ๋ ฅํ ๋ค(๊ณผ๊ฑฐ๋ก ๊ฐ๋ ค๋ฉด ์์๋ฅผ ์ ๋ ฅํ์ธ์) ๊ฒฐ๊ณผ ๋ ์ง๋ฅผ ํ์ธํ๋ฉด ๋ฉ๋๋ค. ๋ถ์ ํ์๋ ๊ณ์ฐ๋ ์ฐ๋, ์, ์ผ์ด ํ์๋๋ฉฐ, ๋ ์ง๊ฐ ํด๋น ์์ ๋ง์ผ๋ก ๋ณด์ ๋ ๊ฒฝ์ฐ ๋ณ๋๋ก ์๋ดํด ๋๋ฆฝ๋๋ค.
๊ณ์ฐ ๊ณต์ ์ดํดํ๊ธฐ
๋ฌ๋ ฅ์์ ์ ์ธ๋ฑ์ค๋ (์ฐ๋ ร 12) + (์ โ 1) + N ์ผ๋ก ๊ณ์ฐํฉ๋๋ค. ์ด ๊ฐ์ 12๋ก ๋๋๋ฉด ์๋ก์ด ์ฐ๋๊ฐ, ๋๋จธ์ง๋ก๋ ์๋ก์ด ์์ด ๊ตฌํด์ง๋๋ค. ์ผ(ๆฅ)์ ๊ทธ๋๋ก ์ ์ง๋์ง๋ง, ์๋ก์ด ๋ฌ์ ๊ทธ ๋ ์ง๊ฐ ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ์๋ ์์ธ์ ๋๋ค.
$$\text{Result} = \text{Date}(Y, M+N, \min(D, \text{lastDay}(Y, M+N)))$$
$$M_{new} = ((M-1)+N) \bmod 12 + 1$$
$$D_{new} = \min(D, \text{lastDay}(Y_{new}, M_{new}))$$
์๋ฅผ ๋ค์ด 1์ 31์ผ์ 1๊ฐ์์ ๋ํ๋ฉด "2์ 31์ผ"์ ์กด์ฌํ ์ ์์ผ๋ฏ๋ก, ๊ทธ ๋ฌ์ ๋ง์ง๋ง ์ ํจํ ๋ ์ง(28์ผ ๋๋ 29์ผ)๋ก ๋ณด์ ๋ฉ๋๋ค. ์ด๋ ๋๋ถ๋ถ์ ์คํ๋ ๋์ํธ ๋ฐ ๋ ์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํจ์๊ฐ ๋์ํ๋ ๋ฐฉ์๊ณผ ๋์ผํฉ๋๋ค.
์์๋ก ๋ณด๋ ๊ณ์ฐ
๊ธฐ์ค์ผ์ด 2024-01-31์ด๊ณ 1๊ฐ์์ ๋ํ๋ค๊ณ ๊ฐ์ ํด ๋ด ์๋ค. ๋์ฐฉํ๋ ๋ฌ์ 2024๋ 2์์ด๋ฉฐ, ์ค๋ ์ด๋ผ 29์ผ๊น์ง ์์ต๋๋ค. \(31 > 29\) ์ด๋ฏ๋ก ์ผ์๋ 29์ผ๋ก ๋ณด์ ๋์ด ๊ฒฐ๊ณผ๋ 2024-02-29๊ฐ ๋ฉ๋๋ค.
๊ฐ ์์ ๋ ์
์๋ง๋ค ๊ธธ์ด๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์์ ๋ ์ด ๋ชฉํ ์์ ์กด์ฌํ์ง ์์ ์ ์์ต๋๋ค. ์๋ ์ฐธ์กฐ๋ ๊ทธ๋ ๊ณ ๋ฆฌ๋ ฅ์ ๊ฐ ์์ ๋ ์๋ฅผ ๋์ดํฉ๋๋ค.
| # | ์ | ์ผ ์ |
|---|---|---|
| 1 | 1์ | 31 |
| 2 | 2์ | 28 (์ค๋ ์๋ 29) |
| 3 | 3์ | 31 |
| 4 | 4์ | 30 |
| 5 | 5์ | 31 |
| 6 | 6์ | 30 |
| 7 | 7์ | 31 |
| 8 | 8์ | 31 |
| 9 | 9์ | 30 |
| 10 | 10์ | 31 |
| 11 | 11์ | 30 |
| 12 | 12์ | 31 |
30์ผ์ธ 4๊ฐ ์์ 4์, 6์, 9์, 11์์ด๊ณ , ๋๋จธ์ง๋ 31์ผ์ด๋ฉฐ, 2์์ ์ ์ธํฉ๋๋ค. 2์์ ์ ์ผํ๊ฒ ๊ธธ์ด๊ฐ ๋ณํ๋ ์์ ๋๋ค. ์ค๋ ์๋ 29์ผ์ด๊ณ ๊ทธ ์ธ์๋ 28์ผ์ ๋๋ค.
์ค๋ ์ด ๊ฒฐ์ ๋๋ ๋ฐฉ์
๊ทธ๋ ๊ณ ๋ฆฌ๋ ฅ์ ๋ฐ๋ผ, ์ฐ๋๊ฐ ์ด ๊ท์น๋ค์ ๋ง์กฑํ๋ฉด ์ค๋ ์ ๋๋ค:
- ์ฐ๋๊ฐ 4๋ก ๋๋์ด์ง๊ณ , ๊ทธ๋ฆฌ๊ณ
- 100์ผ๋ก ๋๋์ด์ง์ง ์๊ฑฐ๋, ๋จ
- 400์ผ๋ก๋ ๋๋์ด์ง๋ค๋ฉด.
๋ฐ๋ผ์ 2020๋ ๊ณผ 2024๋ ์ ์ค๋ ์ ๋๋ค(4๋ก ๋๋์ด์ง๊ณ 100์ผ๋ก๋ ๋๋์ด์ง์ง ์์). 1900๋ ์ ์ค๋ ์ด ์๋์์ต๋๋ค(100์ผ๋ก๋ ๋๋์ด์ง์ง๋ง 400์ผ๋ก๋ ๋๋์ด์ง์ง ์์). 2000๋ ์ ์ค๋ ์ด์์ต๋๋ค(400์ผ๋ก ๋๋์ด์ง). ์ด๊ฒ์ด 2023๋ ์ \(1์\ 31 + 1\) ์์ 2์ 28์ ์ฃผ์ง๋ง 2024๋ ์๋ 2์ 29๋ฅผ ์ฃผ๋ ์ด์ ์ ๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
์๋ง์๋ ์ด๋ป๊ฒ ์ฒ๋ฆฌ๋๋์? ๊ธฐ์ค์ผ์ ๋ ์ง๊ฐ ๋์ฐฉํ๋ ๋ฌ์ ์กด์ฌํ์ง ์์ผ๋ฉด ํด๋น ์์ ๋ง์ง๋ง ๋ ๋ก ์๋ ์กฐ์ ๋ฉ๋๋ค.
๊ฐ์ ์๋ฅผ ๋บ ์๋ ์๋์? ๋ค. -3์ฒ๋ผ ์์๋ฅผ ์ ๋ ฅํ๋ฉด 3๊ฐ์ ์ ์ผ๋ก ๊ฑฐ์ฌ๋ฌ ์ฌ๋ผ๊ฐ๋๋ค.
์ค๋ ๋ ์ฒ๋ฆฌํ๋์? ๋ค. ์์ ๋ง์ง๋ง ๋ ๊ณ์ฐ์ด ์ค๋ ์ ์๋์ผ๋ก ๋ฐ์ํ๊ธฐ ๋๋ฌธ์, 1์ 31์ผ์ 1๊ฐ์์ ๋ํ๋ฉด ์ค๋ ์๋ 2์ 29์ผ, ํ๋ ์๋ 2์ 28์ผ๋ก ๋จ์ด์ง๋๋ค.