- ๋ฌธ์ :
- ํญํด 1์ผ์ฐจ ๋ ์ง๋ฅผ ์
๋ ฅํ๋ฉด 98์ผ ์ดํ ํญํด๋ฅผ ์๋ฃํ๊ฒ ๋๋ ๋ ์ง๋ฅผ ๊ณ์ฐํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ง๋ค๊ธฐ
- ์ค์ผ์ ๊ณ ๋ คํ์ง์๊ณ (2์์ 28์ผ ๊น์ง), 1 <= month <= 12
- ์์ค์ฝ๋
package examPrac;
public class exam1 {
public static void main(String[] args) {
int a = 5; // ํญํด99 ์์ ์ ์
๋ ฅ๋ฐ์ ๋ณ์ ์ ์ธ
int b = 24; // ํญํด99 ์์ ์ผ ์
๋ ฅ๋ฐ์ ๋ณ์ ์ ์ธ
int[] monthsDay = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; // 1~12 ์๋ณ ์ผ์ ๋ฐฐ์ด ์ ์ธ
int totalDate = 0; // ์ด ์ผ์๋ฅผ ๊ตฌํ๊ธฐ ์ํ ๋ณ์ ์ ์ธ&์ด๊ธฐํ
int mon1 = 1; // 98์ผ ํ ์์ ๊ตฌํ๊ธฐ ์ํ ๋ณ์ 1์๋ถํฐ ์์ํ๊ธฐ๋๋ฌธ์ 1๋ก ์ด๊ธฐํํจ
int day1 = 0; // 98์ผ ํ ๋ ์ง๋ฅผ ๊ตฌํ๊ธฐ ์ํ ๋ณ์
int result = 0; // result ๊ฐ์ ๋ฐํํ๊ธฐ ์ํ ๋ณ์
for (int i = 0; i < a - 1; i++) {
// ๋จผ์ ์์์ ์ ์ธํ ์์์ผ์ด ๋ช์ผ์งธ์ธ์ง ๊ตฌํ๊ธฐ ์ํ ๋ฐ๋ณต๋ฌธ์ ์์ฑํ๋ค.
totalDate += monthsDay[i];
// i๋ 0๋ถํฐ, a(์)-1์ ํ ๋งํผ ๋ฐ๋ณตํ๋ฉด์ totalDate์ ์ผ์๋ฅผ ๋ํ๋ค.
}
totalDate += b + 98;
// ์ง์ ๋ฌ๊น์ง ๋ํ TotalDate ํจ์์ ํด๋น์์ ์ผ(=b)๋ฅผ ๋ํ๊ณ , 98์ผ ํ์ ๋ ์ง๋ฅผ ๊ตฌํ๊ธฐ์ํด 98์ ๋ํ๋ค.
result = totalDate % 365;
// ๋ง์ผ ๊ธฐ์ค์ผ(a์ b์ผ) + 98์ผ์ด ๋ด๋
์ผ๋ก ๋์ด๊ฐ์๋๋ฅผ ๋๋นํ๊ธฐ ์ํด ํด๋น ์์
์ ํด์ค๋ค.
for (int i = 0; i < 12; i++) {
// 98์ผ ์ดํ์ ๋ ์ง๋ฅผ ๊ตฌํ๊ธฐ์ํด 0๋ถํฐ monthDay๋ฐฐ์ด์ ํฌ๊ธฐ๋งํผ(=12) ์ฆ๊ฐํ๋ฉด์ ๋ฐ๋ณต๋๋ค.
if (result - monthsDay[i] > 0) {
// result ์์ MonthDay[i]๋ฅผ ๋บ ๊ฐ์ด 0 ๋ณด๋ค ์์์ง ๋๊น์ง ๋ฐ๋ณตํ๋๋ฐ
// ๋ง์ฝ ๊ฒฐ๊ณผ๊ฐ์์ monthDay[i]๋ฅผ ๋บ ๊ฐ์ด 0๋ณด๋ค ์๋ค๋ฉด ํด๋น์์ ๋๋ฌํ๊ฒ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
result = result - monthsDay[i];
mon1 = mon1 + 1;
// ๋ฐฐ์ด์ ์ธ๋ฑ์ค ๊ฐ์ 0๋ถํฐ ์์ํ์ฌ 1์ฉ ์๊ธฐ๋๋ฌธ์ +1์ผ์ ํ์ฌ mon1์ ๋ฃ๋๋ค.
} else {
day1 = result;
// ์์ ๊ตฌํ๊ณ ๋จ์ ๊ฐ(= ํ๋ฌ์ ๋ค ์ฑ์ฐ์ง ๋ชปํ๊ณ ๋จ์ ์ผ์)๋ฅผ Day ๋ณ์์ ๋ฃ๋๋ค.
break;
}
}
System.out.println(mon1 +","+ day1);
// ์, ์ผ์ ์ถ๋ ฅ!
}
}
- ํ์ด :
- ์ด ๋ฌธ์ ๋ ์ธ ๋ฌธ์ ์ค ๊ฐ์ฅ ๋์ด๋๊ฐ ๋ฎ์ ๋ฌธ์ ์๋๋ฐ dateํจ์๋ฅผ ์ฐ์ง ์๊ณ ๊ตฌํํ๋ คํ๋ ์๊ฐ๋ณด๋ค ์ด๋ ค์ ๋ค.
- ํ๋ก๊ทธ๋๋จธ์ค์์ ํ์๋ 2016 ๋ฌธ์ ์์ + 98์ผ์ ๋ํ๊ณ + ๋ ์ง ๋ฐฐ์ด์ ์ ๋งํผ ๋นผ์ + ์ / ์ผ์ ๊ตฌํ๋ ๋ฌธ์ ๋ค.