package calendar2;
// 정보은닉 - 날짜의 유효성을 검증하는 프로그램 구현
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) {
setMonth(month);
setDay(day);
setYear(year);
}
public int getDay() {
return day;
}
public void setDay(int day) {
switch(month) {
case 1: case 3: case 5: case 8: case 10: case 11:
if(day < 0 || day > 30) {
isValid = false;
} else {
this.day = day;
}
break;
case 4: case 6: case 7: case 9: case 12:
if(day < 0 || day > 31) {
isValid = false;
} else {
this.day = day;
}
break;
case 2:
if(( (year %4 == 0 && year %100 != 0 )|| year %100 == 0)) {
if(day < 0 || 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) {
return "유효한 날짜 입니다.";
} else {
return "유효한 날짜가 아닙니다.";
}
}
}
package calendar2;
public class MyDateTest {
public static void main(String[] args) {
MyDate mydate1 = new MyDate(55,2,2002);
System.out.println(mydate1.isValid());
MyDate mydate2 = new MyDate(1,5,2005);
System.out.println(mydate2.isValid());
}
}
'JAVA Programming > JAVA 문제' 카테고리의 다른 글
[31] ArrayList 활용 문제 (0) | 2020.07.15 |
---|---|
[30] ArrayList 을 이용하여 학생의 수강과목 학점 출력하기 ( 직접 만들어보기) (0) | 2020.07.15 |
[25] 배열문제 ( 기본데이터 타입 문제) (0) | 2020.07.14 |
[22] 코딩해보세요. static 과 singleton pattern(유일한 객체) (0) | 2020.07.14 |
[19] 객체 협력 객체지향 문제 (0) | 2020.07.14 |