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) => 현재연도를 알 수 있다.
'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 |