만 14세 미만인 사용자의 회원가입을 방지하거나, 개인정보보호법 상의 법적 제약을 준수하기 위해 생년월일 정보를 이용한 만 14세 미만 체크 기능은 많은 웹사이트나 애플리케이션에서 사용되고 있습니다. 이번에는 생년월일 정보를 입력받아 만 14세 미만인지 아닌지를 체크하는 기능을 구현해보도록 하겠습니다.
C# 강의 - UserRegister_IsBelow14_연습문제_만 14세 미만 체크 메서드 구현
C#을 사용하여 생년월일 정보를 입력 받았을 때, 이를 사용해서 만 14세 미만인지 아닌지를 체크하는 메서드를 만들어 보도록 하겠습니다. 다음 코드의 IsBelow14() 메서드가 이러한 역할을 합니다.
강의
https://youtu.be/NinwuRe5Jg8
코드: UserRegister.cs
// UserRegister.cs
// IsBelow14_연습문제_만 14세 미만 체크 메서드 구현
using System;
class UserRegister
{
    static void Main(string[] args)
    {
        Console.WriteLine(IsBelow14(2002, 2, 2)); // false
        Console.WriteLine(IsBelow14(2005, 2, 2)); // flase 
        Console.WriteLine(IsBelow14(2022, 1, 1)); // true 
    }
    //[!] 만 14세 미만 체크 by (년, 월, 일)
    public static bool IsBelow14(int year, int month, int day)
    {
        // 현재 년월일과 생년월일의 차이 구하기
        var yearDiff = DateTime.Now.Year - year;
        var monthDiff = DateTime.Now.Month - month;
        var dayDiff = DateTime.Now.Day - day;
        // 년도 차이가 14이면 월과 일 차이도 체크
        if (yearDiff == 14)
        {
            // 월 차이가 마이너스면 아직 생일이 지나지 않은 상태
            if (monthDiff < 0)
            {
                return true; // 만 14세 미만
            }
            else if (monthDiff == 0)
            {
                if (dayDiff < 0)
                {
                    return true; // 만 14세 미만
                }
                else
                {
                    return false; // 만 14세 이상 
                }
            }
            else
            {
                return false;
            }
        }
        else if (yearDiff < 14)
        {
            return true; // 아직 14세 미만
        }
        else
        {
            return false; // 14세 이상
        }
    } // </만 14세 미만 체크> 
}
실행 결과
False
False
True
C 언어 강의 - UserRegister_IsBelow14_연습문제_만 14세 미만 체크 메서드 구현
C 언어를 사용하여 생년월일 정보를 입력 받았을 때, 이를 사용해서 만 14세 미만인지 아닌지를 체크하는 메서드를 만들어 보도록 하겠습니다. 다음 코드의 IsBelow14() 메서드가 이러한 역할을 합니다.
코드: UserRegister.c
// UserRegister.c
// IsBelow14_연습문제_만 14세 미만 체크 메서드 구현
#include <stdio.h>
#include <stdbool.h> // bool 자료형 사용을 위해 필요한 헤더 파일
bool IsBelow14(int year, int month, int day)
{
    // 현재 년월일과 생년월일의 차이 구하기
    int yearDiff = 2023 - year;
    int monthDiff = 4 - month;
    int dayDiff = 14 - day;
    // 년도 차이가 14이면 월과 일 차이도 체크
    if (yearDiff == 14)
    {
        // 월 차이가 마이너스면 아직 생일이 지나지 않은 상태
        if (monthDiff < 0)
        {
            return true; // 만 14세 미만
        }
        else if (monthDiff == 0)
        {
            if (dayDiff < 0)
            {
                return true; // 만 14세 미만
            }
            else
            {
                return false; // 만 14세 이상 
            }
        }
        else
        {
            return false;
        }
    }
    else if (yearDiff < 14)
    {
        return true; // 아직 14세 미만
    }
    else
    {
        return false; // 14세 이상
    }
} // </만 14세 미만 체크> 
int main(void)
{
    printf("%s\n", IsBelow14(2002, 2, 2) ? "true" : "false"); // false
    printf("%s\n", IsBelow14(2005, 2, 2) ? "true" : "false"); // false
    printf("%s\n", IsBelow14(2022, 1, 1) ? "true" : "false"); // true
    return 0;
}
실행 결과
false
false
true
Java 강의 - UserRegister_IsBelow14_연습문제_만 14세 미만 체크 메서드 구현
Java를 사용하여 생년월일 정보를 입력 받았을 때, 이를 사용해서 만 14세 미만인지 아닌지를 체크하는 메서드를 만들어 보도록 하겠습니다. 다음 코드의 isBelow14() 메서드가 이러한 역할을 합니다.
코드: UserRegister.java
import java.time.LocalDate;
import java.time.Period;
public class UserRegister {
    public static void main(String[] args) {
        System.out.println(isBelow14(2002, 2, 2)); // false
        System.out.println(isBelow14(2005, 2, 2)); // false 
        System.out.println(isBelow14(2022, 1, 1)); // true 
    }
    //[!] 만 14세 미만 체크 by (년, 월, 일)
    public static boolean isBelow14(int year, int month, int day) {
        // 현재 년월일과 생년월일의 차이 구하기
        LocalDate birthDate = LocalDate.of(year, month, day);
        LocalDate now = LocalDate.now();
        Period age = Period.between(birthDate, now);
        // 만 나이 계산하여 14세 미만 여부 반환
        return age.getYears() < 14;
    } // </만 14세 미만 체크> 
}
실행 결과
false
false
true
UserRegister.py
생년월일 정보를 이용해 만 14세 미만인지 아닌지 체크하는 예제
from datetime import date, timedelta
def is_below_14(year, month, day):
    today = date.today()
    birthday = date(year, month, day)
    diff = today - birthday
    age = diff.days // 365
    if age < 14:
        return True
    else:
        return False
print(is_below_14(2002, 2, 2)) # False
print(is_below_14(2005, 2, 2)) # False
print(is_below_14(2022, 1, 1)) # True
JavaScript - 생년월일을 이용한 14세 미만 여부 확인
JavaScript를 사용하여 생년월일 정보를 입력 받았을 때, 이를 사용해서 만 14세 미만인지 아닌지를 체크하는 함수를 만들어 보도록 하겠습니다. 다음 코드의 isBelow14() 함수가 이러한 역할을 합니다.
코드: main.js
function isBelow14(year, month, day) {
  const today = new Date();
  const birthday = new Date(year, month - 1, day);
  const diffYear = today.getFullYear() - birthday.getFullYear();
  const diffMonth = today.getMonth() - birthday.getMonth();
  const diffDay = today.getDate() - birthday.getDate();
  // 년도 차이가 14이면 월과 일 차이도 체크
  if (diffYear === 14) {
    // 월 차이가 마이너스면 아직 생일이 지나지 않은 상태
    if (diffMonth < 0) {
      return true; // 만 14세 미만
    } else if (diffMonth === 0) {
      if (diffDay < 0) {
        return true; // 만 14세 미만
      } else {
        return false; // 만 14세 이상
      }
    } else {
      return false; // 만 14세 이상
    }
  } else if (diffYear < 14) {
    return true; // 아직 14세 미만
  } else {
    return false; // 14세 이상
  }
}
console.log(isBelow14(2002, 2, 2)); // false
console.log(isBelow14(2005, 2, 2)); // false
console.log(isBelow14(2022, 1, 1)); // true
실행 결과
false
false
true
#include <iostream>
#include <ctime>
using namespace std;
bool isBelow14(int year, int month, int day) {
    time_t now = time(NULL);
    tm current_tm = *localtime(&now);
    int yearDiff = current_tm.tm_year + 1900 - year;
    int monthDiff = current_tm.tm_mon + 1 - month;
    int dayDiff = current_tm.tm_mday - day;
    if (yearDiff == 14) {
        if (monthDiff < 0) {
            return true; // 만 14세 미만
        } else if (monthDiff == 0) {
            if (dayDiff < 0) {
                return true; // 만 14세 미만
            } else {
                return false; // 만 14세 이상
            }
        } else {
            return false; // 만 14세 이상
        }
    } else if (yearDiff < 14) {
        return true; // 아직 14세 미만
    } else {
        return false; // 14세 이상
    }
}
int main() {
    cout << isBelow14(2002, 2, 2) << endl; // false
    cout << isBelow14(2005, 2, 2) << endl; // false
    cout << isBelow14(2022, 1, 1) << endl; // true
    return 0;
}
Go 언어 강의 - UserRegister_IsBelow14_연습문제_만 14세 미만 체크 메서드 구현
Go 언어를 사용하여 생년월일 정보를 입력 받았을 때, 이를 사용해서 만 14세 미만인지 아닌지를 체크하는 함수를 만들어 보도록 하겠습니다. 다음 코드의 isBelow14() 함수가 이러한 역할을 합니다.
코드: user_register.go
// user_register.go
// isBelow14_연습문제_만 14세 미만 체크 메서드 구현
package main
import (
    "fmt"
    "time"
)
func main() {
    fmt.Println(isBelow14(2002, 2, 2)) // false
    fmt.Println(isBelow14(2005, 2, 2)) // flase
    fmt.Println(isBelow14(2022, 1, 1)) // true
}
//[!] 만 14세 미만 체크 by (년, 월, 일)
func isBelow14(year, month, day int) bool {
    // 현재 년월일과 생년월일의 차이 구하기
    t := time.Now()
    yearDiff := t.Year() - year
    monthDiff := int(t.Month()) - month
    dayDiff := t.Day() - day
    // 년도 차이가 14이면 월과 일 차이도 체크
    if yearDiff == 14 {
        // 월 차이가 마이너스면 아직 생일이 지나지 않은 상태
        if monthDiff < 0 {
            return true // 만 14세 미만
        } else if monthDiff == 0 {
            if dayDiff < 0 {
                return true // 만 14세 미만
            } else {
                return false // 만 14세 이상
            }
        } else {
            return false
        }
    } else if yearDiff < 14 {
        return true // 아직 14세 미만
    } else {
        return false // 14세 이상
    }
} // </만 14세 미만 체크>
Rust 강의 - 생일로 만 14세 미만인지 체크하기
Rust 언어를 사용하여 생년월일 정보를 입력 받았을 때, 이를 사용해서 만 14세 미만인지 아닌지를 체크하는 함수를 만들어 보도록 하겠습니다. 이번 예제를 통해 조건문, 연산자 등 Rust 언어의 기초적인 문법을 익혀볼 수 있습니다.
코드: main.rs
use std::io;
fn main() {
    let mut year = String::new();
    let mut month = String::new();
    let mut day = String::new();
    println!("생년월일을 입력하세요.");
    println!("년도: ");
    io::stdin().read_line(&mut year).expect("Failed to read line");
    let year: i32 = year.trim().parse().expect("Please type a number!");
    println!("월: ");
    io::stdin().read_line(&mut month).expect("Failed to read line");
    let month: i32 = month.trim().parse().expect("Please type a number!");
    println!("일: ");
    io::stdin().read_line(&mut day).expect("Failed to read line");
    let day: i32 = day.trim().parse().expect("Please type a number!");
    println!("만 14세 미만인가요? {}", is_below_14(year, month, day));
}
fn is_below_14(year: i32, month: i32, day: i32) -> bool {
    // 현재 년월일과 생년월일의 차이 구하기
    let (now_year, now_month, now_day) = chrono::Utc::today().naive_utc().date().tuple();
    let year_diff = now_year - year;
    let month_diff = now_month as i32 - month;
    let day_diff = now_day as i32 - day;
    // 년도 차이가 14이면 월과 일 차이도 체크
    if year_diff == 14 {
        if month_diff < 0 {
            true // 만 14세 미만
        } else if month_diff == 0 {
            if day_diff < 0 {
                true // 만 14세 미만
            } else {
                false // 만 14세 이상
            }
        } else {
            false // 만 14세 이상
        }
    } else if year_diff < 14 {
        true // 아직 14세 미만
    } else {
        false // 14세 이상
    }
}
function isBelow14(year: number, month: number, day: number): boolean {
  const now = new Date();
  const birthday = new Date(year, month - 1, day);
  const diffMs = now.getTime() - birthday.getTime();
  const diffY = diffMs / 1000 / 60 / 60 / 24 / 365;
  return diffY < 14;
}
console.log(isBelow14(2002, 2, 2)); // false
console.log(isBelow14(2005, 2, 2)); // true
console.log(isBelow14(2022, 1, 1)); // true
Kotlin - 생년월일 정보를 이용한 만 14세 미만 체크
Kotlin으로 생년월일 정보를 입력받아 만 14세 미만인지를 체크하는 예제입니다.
코드: UserRegister.kt
import java.time.LocalDate
fun main() {
    println(isBelow14(2002, 2, 2)) // false
    println(isBelow14(2005, 2, 2)) // false 
    println(isBelow14(2022, 1, 1)) // true 
}
//[!] 만 14세 미만 체크 by (년, 월, 일)
fun isBelow14(year: Int, month: Int, day: Int): Boolean {
    // 생년월일과 현재 년월일의 차이 계산
    val birth = LocalDate.of(year, month, day)
    val now = LocalDate.now()
    val diff = now.year - birth.year
    // 년도 차이가 14이면 월과 일 차이도 체크
    if (diff == 14) {
        val monthDiff = now.monthValue - birth.monthValue
        if (monthDiff < 0) {
            return true // 만 14세 미만
        } else if (monthDiff == 0) {
            val dayDiff = now.dayOfMonth - birth.dayOfMonth
            if (dayDiff < 0) {
                return true // 만 14세 미만
            } else {
                return false // 만 14세 이상 
            }
        } else {
            return false // 만 14세 이상
        }
    } else if (diff < 14) {
        return true // 만 14세 미만
    } else {
        return false // 만 14세 이상
    }
}
실행 결과
false
false
true
 
이번 아티클에서는 생년월일 정보를 이용한 만 14세 미만 체크 기능을 다양한 프로그래밍 언어로 구현해보았습니다. 나이를 계산하는 방법은 다양하지만, 생년월일 정보를 이용하면 법적 제약을 준수할 수 있고, 더욱 정확한 연령대 체크가 가능합니다. 이를 기반으로 실제 서비스나 애플리케이션에서 유용하게 활용해보시기 바랍니다.