반응형
날짜를 입력하면 +1DAY를 해주는 프로그램입니다. (+추가 윤년이 계산되지않아 윤년을 계산하여 적용시켰습니다.)
class Date
{
private int month;
private int day;
private int year;
int[] daysPerMonth = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
public Date( int month, int day, int year )
{
this.month = checkMonth( month);
this.year = year;
this.day = checkDay( day );
}
private int checkMonth( int testMonth )
{
if ( testMonth >= 1 && testMonth <= 12 )
return testMonth;
else
return 1; // for invalid testMonth
}
private int checkDay( int testDay )
{
if ( testDay > 0 && testDay <= daysPerMonth[ month ] )
return testDay;
if ( month==2 && testDay==29 &&(year%400 == 0 || (year%4 == 0 && year%100 != 0)) )
return testDay;
return 1; // for invalid testDay
}
public String toString()
{
return month + "/" + day + "/" + year;
}
public void increase() {
if(month == 12 && day == 31) {
month =1;
day =1;
year = year+1;
}
else if( month==2 && day==29 &&(year%400 == 0 || (year%4 == 0 && year%100 != 0))){
this.month = checkMonth( month+1);
this.day = 1;
}
else if( month==2 && day==28 &&(year%400 == 0 || (year%4 == 0 && year%100 != 0))){
this.day = day+1;
}
else if(daysPerMonth[month] == day){
this.month = checkMonth( month+1);
this.day=1;
}
else
{
this.day=checkDay( day+1 );
}
}
}
public class DateTest
{
public static void main( String[] args )
{
Date date1 = new Date( 2,28, 2020 );
System.out.println( "Entrace date: " + date1 );
date1.increase();
System.out.println( "Graduation date: " + date1 );
}
}
궁금한 부분있으시면 댓글을 달아서 물어봐주세요~
반응형
'혼자 공부하는 것들 > JAVA' 카테고리의 다른 글
JAVA) jlabel, swing으로 카페매출관리 제작(+MySql)데이터 (삽입,삭제,검색,수정 포함) (0) | 2020.07.18 |
---|---|
JAVA) 문자열뒤집기 +LinkedList사용 (0) | 2020.07.18 |
JAVA) 로또 번호 생성기 +HashSet 사용 (0) | 2020.07.18 |
JAVA) java push,pop이용하여 괄호 쌍 맞추기 (0) | 2020.07.18 |
JAVA)알람시계 클래스 만들기 (0) | 2020.07.18 |
댓글