만 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세 미만 체크 기능을 다양한 프로그래밍 언어로 구현해보았습니다. 나이를 계산하는 방법은 다양하지만, 생년월일 정보를 이용하면 법적 제약을 준수할 수 있고, 더욱 정확한 연령대 체크가 가능합니다. 이를 기반으로 실제 서비스나 애플리케이션에서 유용하게 활용해보시기 바랍니다.