2025년 7월 12일 토요일

나이계산/ 법률자동인식

 <!DOCTYPE html>

<html lang="ko">

<head>

  <meta charset="UTF-8">

  <title>나이 계산기</title>

  <style>

    body { font-family: Arial, sans-serif; padding: 20px; }

    input, select { width: 240px; padding: 5px; margin: 5px 0; }

    button { padding: 6px 12px; margin: 10px 0; cursor: pointer; }

    #result { margin-top: 20px; font-size: 18px; font-weight: bold; white-space: pre-line; }

  </style>

</head>

<body>


  <h2>연나이 / 만나이 계산기</h2>


  <label>현재날짜:</label><br>

  <input type="text" id="currentDate" placeholder="예: 2025-10-11"><br>


  <label>생년월일:</label><br>

  <input type="text" id="birthDate" placeholder="예: 2008-10-17"><br>


  <label>용어 선택:</label><br>

  <select id="termSelect">

    <option value="">-- 용어 선택 --</option>

    <option value="소년">소년</option>

    <option value="아동">아동</option>

    <option value="아동청소년">아동청소년</option>

    <option value="어린이">어린이</option>

    <option value="청소년">청소년</option>

    <option value="촉법소년">촉법소년</option>

    <option value="미성년">미성년</option>

  </select><br>


  <button onclick="calculateAges()">나이 계산</button>


  <div id="result"></div>


  <script>

    const 규정 = {

      "청소년보호법": {

        "청소년": { 기준: "연나이", 최대: 19 }

      },

      "식품위생법": {

        "청소년": { 기준: "연나이", 최대: 19 }

      },

      "음악산업진흥에관한법률": {

        "청소년": { 기준: "연나이", 최대: 19 }

      },

      "게임산업진흥에관한법률": {

        "청소년": { 기준: "연나이", 최대: 19 }

      },

      "아동청소년의 성보호에관한법률": {

        "아동청소년": { 기준: "만나이", 최대: 19 }

      },

      "청소년기본법": {

        "청소년": { 기준: "만나이범위", 최소: 9, 최대: 24 }

      },

      "민법": {

        "미성년": { 기준: "만나이", 최대: 19 }

      },

      "아동복지법": {

        "아동": { 기준: "만나이", 최대: 18 }

      },

      "도로교통법": {

        "어린이": { 기준: "만나이", 최대: 13 }

      },

      "소년법": {

        "촉법소년": { 기준: "만나이범위", 최소: 10, 최대: 13 },

        "소년": { 기준: "만나이", 최대: 19 }

      }

    };


    function calculateAges() {

      const currentDateStr = document.getElementById("currentDate").value.trim();

      const birthDateStr = document.getElementById("birthDate").value.trim();

      const term = document.getElementById("termSelect").value;

      const resultDiv = document.getElementById("result");


      const datePattern = /^\d{4}-\d{2}-\d{2}$/;

      if (!datePattern.test(currentDateStr) || !datePattern.test(birthDateStr)) {

        resultDiv.innerText = "날짜를 YYYY-MM-DD 형식으로 입력해주세요.";

        return;

      }


      const currentDate = new Date(currentDateStr);

      const birthDate = new Date(birthDateStr);

      if (isNaN(currentDate.getTime()) || isNaN(birthDate.getTime())) {

        resultDiv.innerText = "올바른 날짜를 입력해주세요.";

        return;

      }


      const yearAge = currentDate.getFullYear() - birthDate.getFullYear();

      let manAge = yearAge;

      const monthDiff = currentDate.getMonth() - birthDate.getMonth();

      const dayDiff = currentDate.getDate() - birthDate.getDate();

      if (monthDiff < 0 || (monthDiff === 0 && dayDiff < 0)) {

        manAge--;

      }


      let lawResults = "";


      if (term) {

        for (const law in 규정) {

          if (규정[law][term]) {

            const 기준정보 = 규정[law][term];

            const 기준 = 기준정보.기준;

            let 해당 = false;

            let 설명 = "";


            if (기준 === "연나이") {

              해당 = yearAge < 기준정보.최대;

              설명 = `${law} ${term} (연나이 ${기준정보.최대}세 미만): ${해당 ? "해당됨 ✅" : "해당 안 됨 ❌"}`;

            } else if (기준 === "만나이") {

              해당 = manAge < 기준정보.최대;

              설명 = `${law} ${term} (만나이 ${기준정보.최대}세 미만): ${해당 ? "해당됨 ✅" : "해당 안 됨 ❌"}`;

            } else if (기준 === "만나이범위") {

              해당 = manAge >= 기준정보.최소 && manAge <= 기준정보.최대;

              설명 = `${law} ${term} (만나이 ${기준정보.최소}세 이상 ~ ${기준정보.최대}세 이하): ${해당 ? "해당됨 ✅" : "해당 안 됨 ❌"}`;

            }


            lawResults += 설명 + "\n";

          }

        }


        if (!lawResults) {

          lawResults = "선택한 용어에 해당하는 법률 기준이 없습니다.";

        }

      } else {

        lawResults = "용어를 선택해주세요.";

      }


      resultDiv.innerText = `연나이: ${yearAge} / 만나이: ${manAge}\n\n${lawResults}`;

    }

  </script>

</body>

</html

댓글 없음:

댓글 쓰기