Mydate 클래스

package ch5;
import java.util.Calendar;

public class Mydate {
	private int day;
	private int month;
	private int year;
	private boolean isValid = true;
	
	public Mydate(int day, int month, int year) {
		setYear(year);
		setMonth(month);
		setDay(day);
	}


	public int getDay() {
		return day;
	}

	public void setDay(int day) {
		switch(month) {
			case 1: case 3: case 5: case 7: case 8: case 10: case 12:
				if(day<1 || day>31) {
					isValid = false;
				}
				else {
					this.day = day;
				}
				break;
			
			case 4: case 6: case 9: case 11:
				if(day<1 || day>30) {
					isValid = false;
				}
				else {
					this.day = day;
				}
				break;
			
			case 2:
				if((year%4==0) && (year%100!=0) || (year%400==0)) {//윤년
					if(day<1 || day>29) {
						isValid = false;
					}
					else {
						this.day = day;
					}
				}
				else { //윤년아님
					if(day<1 || day>28) {
						isValid = false;
					}
					else {
						this.day = day;
					}
				}
				break;
			default:
				isValid = false;
		}
	}

	public int getMonth() {
		return month;
	}

	public void setMonth(int month) {
		if(month<1 || month>12) {
			isValid = false;
		}
		else {
			this.month = month;
		}
	}

	public int getYear() {
		return year;
	}

	public void setYear(int year) {
		if(year > Calendar.getInstance().get(Calendar.YEAR)) {
			isValid = false;
		}
		else {
			this.year = year;
		}
	}
	
	public String isValid() {
		if(isValid == true) {
			return "유효한 날짜!";
		}
		else {
			return "유효하지 않은 날짜!";
		}
	}
	
}

MydateTest 클래스

package ch5;
import java.util.Calendar;
import java.util.Date;

public class MydateTest {
	public static void main(String[] args) {
		Mydate date1 = new Mydate(29,2,2021);
		System.out.println(date1.isValid());
		Mydate date2 = new Mydate(25,12,2020);
		System.out.println(date2.isValid());
	}
	
}

Calendar 클래스에 대해서 처음 배웠다.

- Date 클래스처럼 날짜와 시간에 관한 정보를 표현할 때 사용한다.

- 추상클래스이므로 객체를 직접 생성할 순 없지만 getInstance()메소드를 이용하여 시스템의 날짜와 시간 정보를 표현할 수 있다.

클래스의 주요 상수
클래스의 메소드

Calendar클래스는 추상 클래스로 생성자를 제공하지 않음.

따라서 Calendar 클래스의 객체를 생성하기 위해 new 연산자를 사용할 수 없다.

그대신 getInstance() 메소드를 사용하여 현재 날짜와 시간의 객체를 얻어올 수 있다.

 

Calendar.getInstance().get(Calendar.YEAR) => 현재연도를 알 수 있다.

 

출처: hyeonstorage.tistory.com/205

'CS 공부 > JAVA' 카테고리의 다른 글

[JAVA] 상속과 다형성 (2)  (0) 2023.07.14
[JAVA] 상속과 다형성 (1)  (0) 2023.06.26
이클립스 실행 오류...  (0) 2022.01.13
객체지향..ER다이어그램...  (0) 2021.02.21
5장 클래스 분리  (0) 2021.02.19

+ Recent posts