Back-end/Java

[Java] 유효한 날짜 확인

douStory 2021. 7. 30. 16:15
728x90

Class / Method 개념 연습을 위한 예제

// 실행부

package practice;
import java.util.Scanner;

public class MyDateTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		System.out.println("유요한지 검증할 날짜를 입력하세요.");
		
		Scanner sc = new Scanner(System.in);
		
		
		System.out.println("년도를 입력하세요.");
		int y = sc.nextInt();
		
		System.out.println("월을 입력하세요.");
		int m = sc.nextInt();
		
		System.out.println("일을 입력하세요.");
		int d = sc.nextInt();
		
		MyDate date = new MyDate(d, m, y);
		
		date.IsDate();
		
	}

}

// 기능부

package practice;

public class MyDate {
		
	private int day;
	private int month;
	private int years;
	static int k = 0;
	
	public MyDate(int day, int month, int year) {
		setYears(year);
		setMonth(month);
		setDay(day);
	}
	
	public int getMonth() {
		return month;
	}

	public void setMonth(int month) {
		
		if( month < 1 || month > 12 ) {
			System.out.println("달은 1-12까지의 숫자를 입력해주세요.");
			k = 1;
		}else {
			this.month = month;
		}
	}

	
	public int getYears() {
		return years;
	}

	public void setYears(int years) {
		this.years = years;
		
	}

	public int getDay() {
		return day;
	}
	
	
	private void setDay(int day) {
		if(month == 2) {
			if(day < 1 || day >28) {
				System.out.println("일 오류입니다.(2월은 28일까지 입력해주세요)");
				k = 1;
			}else {
				this.day = day;
			}
		}else if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
			if(day < 1 || day >31) {
				System.out.println("일 오류입니다." + this.month + "달은 31일까지 입력해주세요.");
				k = 1;
			}else {
				this.day = day;
			}
		}else {
			if(day < 1 || day > 30) {
				System.out.println("일 오류입니다.");
				k = 1;
			}
		}
	}
	
	

	
	public void IsDate() {
		
		if(k == 1){
			System.out.println("유효하지않습니다.");
		}else {
			System.out.println("유요합니다.");
		}
		
	}
}