[ JavaScript ] 지하철 요금 계산기 만들기

2024. 5. 3. 19:17· FRONT-END/└ JS

환경 : Visual Studio Code

 

 

출력결과

[ 주요 코드 ]

    <script type="text/javascript">
        function calculatePrice(){
            /*  입력 
                - 계산에 필요한 태그와 그 정보를 수집한다
                - input 태그와 그 입력값
            */
            var inputTarget = document.querySelector("input[name=birth]");
            //var inputValue = inputTarget.value;//(주의) 입력값은 문자열
            var inputValue = parseInt(inputTarget.value);//정수로 변환

            //계산
            var age = new Date().getFullYear() - inputValue + 1;
            //console.log("age = " + age); 
            
            var price;
            if(age >= 65 || age < 8) {
                price = 0;
            } 
            else if (age >= 14) {
                price = 1500;
            } 
            else {
                price = 500;
            }

            //출력 - 지정된 영역에 글자를 설정하거나 효과를 부여
            //console.log("price = " + price);
            var sapnTarget = document.querySelector(".result");
            sapnTarget.textContent = price;
        }
    </script>

      (+) var inputValue = parseInt(inputTarget.value); //정수로 변환
                └  (중요)  inputTarget에 들어있는 값을 정수로 변환해주기!!

      (+) 조건을 줘서 각 조건에 맞는 금액을 출력하도록 설정하기


[ 전체 코드 ]

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Javascript 예제</title>

    <!-- 구글 폰트 -->
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100..900&display=swap" rel="stylesheet">
     
    <!-- 내가 구현할 스타일 -->
    <link rel="stylesheet" type="text/css" href="../css/commons.css">
    <link rel="stylesheet" type="text/css" href="../css/test.css">
    
    <!-- font awesome 아이콘 CDN -->
    <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
    
    <style>

    </style>

    <!-- javascript를 의도적으로 head 자리에 배치해서 가장 먼저 실행되도록 구현 -->
    <script type="text/javascript">
        function calculatePrice(){
            /*  입력 
                - 계산에 필요한 태그와 그 정보를 수집한다
                - input 태그와 그 입력값
            */
            var inputTarget = document.querySelector("input[name=birth]");
            //var inputValue = inputTarget.value;//(주의) 입력값은 문자열
            var inputValue = parseInt(inputTarget.value);//정수로 변환

            //계산
            var age = new Date().getFullYear() - inputValue + 1;
            //console.log("age = " + age); 
            
            var price;
            if(age >= 65 || age < 8) {
                price = 0;
            } 
            else if (age >= 14) {
                price = 1500;
            } 
            else {
                price = 500;
            }

            //출력 - 지정된 영역에 글자를 설정하거나 효과를 부여
            //console.log("price = " + price);
            var sapnTarget = document.querySelector(".result");
            sapnTarget.textContent = price;
        }
    </script>
</head>
<body>

    <div class="container w-500">
        <div class="cell center">
            <h1>지하철 요금 계산기</h1>
        </div>
       
        <div class="cell">
            <!-- <label>생년월일(ex: 1999)</label> -->
            <input type="text" name="birth" class="tool w-100" placeholder="생년월일(ex: 1999)">
        </div>
        <div class="cell">
            <button class="btn positive w-100" onclick="calculatePrice();">
                <i class="fa-solid fa-coins"></i>
                요금 계산하기
            </button>
        </div>
        <hr>
        <div class="cell right">
            <h2>지불하실 금액은 <span class="result Rose">0</span>원</h2>
        </div>
    </div>


</body>
</html>

 

 

 

 

개인 공부 기록용입니다:)

728x90