Seize your moment! ๐Ÿ‘พ

์•ˆ๋…•ํ•˜์„ธ์š”. Eric์ž…๋‹ˆ๋‹ค. ์ œ ๋ธ”๋กœ๊ทธ์— ๋ฐฉ๋ฌธํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’ป ๊ฐœ๋ฐœ๊ณต๋ถ€/JavaScript

[Eric's JS] JavaScript๋กœ ๋‚˜์ด๊ณ„์‚ฐ, ๋  ๊ณ„์‚ฐํ•˜๋Š” ํ•จ์ˆ˜ ๋งŒ๋“ค๊ธฐ โญ๏ธ

Eric_ko 2023. 7. 30. 21:30

์•ˆ๋…•ํ•˜์„ธ์š”,

์—ฌ๋Ÿฌ๋ถ„! ์˜ค๋Š˜์€ JavaScript๋ฅผ ์ด์šฉํ•ด ๋‚˜์ด์™€ ๋ ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๊ฐ„๋‹จํ•œ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด ํ•จ์ˆ˜๋Š” ์‚ฌ์šฉ์ž์˜ ์ƒ๋…„์›”์ผ์„ ์ž…๋ ฅ๋ฐ›์•„ ๊ทธ์— ํ•ด๋‹นํ•˜๋Š” ๋‚˜์ด์™€ ๋ ๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ , ์ด๋ฅผ ์›น ํŽ˜์ด์ง€์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

๋จผ์ €, HTML ๊ตฌ์กฐ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

'age'์™€ 'zodiac'๋ผ๋Š” id๋ฅผ ๊ฐ€์ง„ ๋‘ ๊ฐœ์˜ div ์š”์†Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ณณ์— JavaScript๋ฅผ ํ†ตํ•ด ๊ณ„์‚ฐ๋œ ๋‚˜์ด์™€ ๋  ์ •๋ณด๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

<body>
  <div id="age"></div>
  <div id="zodiac"></div>
  ...
</body>

 

๋‹ค์Œ์œผ๋กœ, JavaScript ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋จผ์ €, ์‚ฌ์šฉ์ž์˜ ์ƒ๋…„์›”์ผ์„ 'birthDay' ๋ณ€์ˆ˜์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

let birthDay = "2001-02-21";

 

๋งŒ๋‚˜์ด ๊ณ„์‚ฐํ•˜๊ธฐ

๊ทธ๋ฆฌ๊ณ  'calculateAge'๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์ด ํ•จ์ˆ˜๋Š” ์ƒ๋…„์›”์ผ์„ ์ž…๋ ฅ๋ฐ›์•„ ์˜ค๋Š˜ ๋‚ ์งœ์™€ ๋น„๊ตํ•˜์—ฌ ๋‚˜์ด๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

function calculateAge (birthDateString) {
  var birthDate = new Date(birthDateString);
  var today = new Date();
  var age = today.getFullYear() - birthDate.getFullYear();
  var m = today.getMonth() - birthDate.getMonth();
  
  if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
          age--;
  }
  return age;
}
var age = calculateAge(birthDay);
document.getElementById('age').innerText = age +'์‚ด';

 

๋  ๊ตฌํ•˜๊ธฐ

 

๋‹ค์Œ์œผ๋กœ, 'getKoreanZodiac'๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ์ƒ๋…„์›”์ผ์„ ์ž…๋ ฅ๋ฐ›์•„ ๊ทธ์— ํ•ด๋‹นํ•˜๋Š” ๋ ๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

 function getKoreanZodiac (birthDateString) {
   let date = new Date(birthDay);
   let year = date.getFullYear();
   const zodiacs = ['์ฅ', '์†Œ', 'ํ˜ธ๋ž‘์ด', 'ํ† ๋ผ', '์šฉ', '๋ฑ€', '๋ง', '์–‘', '์›์ˆญ์ด', '๋‹ญ', '๊ฐœ', '๋ผ์ง€'];
   
   return zodiacs[(year - 4) % 12];
 }

 document.getElementById('zodiac').innerText = getKoreanZodiac(birthDay) + '๋ ';

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด, ์›น ํŽ˜์ด์ง€์— ์‚ฌ์šฉ์ž์˜ ๋‚˜์ด์™€ ๋ ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

 

์ฝ”๋“œ

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <div id="age"></div>
  <div id="zodiac"></div>

  <script>
    let birthDay = "2001-02-21";

    function calculateAge (birthDateString) {
      var birthDate = new Date(birthDateString);
      var today = new Date();
      var age = today.getFullYear() - birthDate.getFullYear();
      var m = today.getMonth() - birthDate.getMonth();
      if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
          age--;
      }
      return age;
    }
    var age = calculateAge(birthDay);
    document.getElementById('age').innerText = age +'์‚ด';

    function getKoreanZodiac (birthDateString) {
      let date = new Date(birthDay);
      let year = date.getFullYear();
      const zodiacs = ['์ฅ', '์†Œ', 'ํ˜ธ๋ž‘์ด', 'ํ† ๋ผ', '์šฉ', '๋ฑ€', '๋ง', '์–‘', '์›์ˆญ์ด', '๋‹ญ', '๊ฐœ', '๋ผ์ง€'];
      return zodiacs[(year - 4) % 12];
    }

    document.getElementById('zodiac').innerText = getKoreanZodiac(birthDay) + '๋ ';
  </script>
</body>
</html>

 

 

์ด ๊ฐ„๋‹จํ•œ JavaScript ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋‚˜์ด์™€ ๋ ๋ฅผ ์‰ฝ๊ฒŒ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์—๋Š” ๋” ๋ณต์žกํ•œ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ๋‹ค์Œ์— ๋˜ ๋งŒ๋‚˜์š”!