어떤 옷가게에서 할인 행사를 짝수번째 목요일마다 진행한다고 한다.
년도를 입력하면 해당 년도의 모든 할인 날짜를 출력해주는 프로그램을 만들어보세요.
[printEventOfYear()]
해당년도의 짝수번째 목요일을 파악하여
총 이벤트 일수를 출력하여주는 메소드
1. SimpleDateFormat을 이용하여 날짜의 원하는 출력 형태를 정해준다
2. while문을 통하여 짝수번쨰 목요일이 몇번 나오는지 체크하여주는데
while문의 반복 조건은 사용자가 입력한 년도와 이벤트에 해당하는 년도가 같을때까지인데
이벤트에 해당하는 년도는 반복문이 돌때마다 일수에 7일씩 더해주기 때문에
2020년을 입력받았다면 2021년이 되는순간 while문이 정지되는 것이다.
3. if문을 통하여 짝수번째 목요일을 찾아준다. 첫번째 목요일이라면 1 두번째 목요일이라면 2를 반환하기에
요일 value % 2 == 0 일때 짝수로 나눠져 0이 될때에만 해당 년 일 월 요일을 출력하여주고
count++를 하여 총 몇회 이벤트를 했는지 계산하여준다.
(Calendar객체에 set메서드를 통해 해당 년도의 첫번째 목요일로 셋팅해준다
예) event.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);)
[getFirstEventDay()]
원하는 년도의 첫번째 목요일을 셋팅해주는 메서드이다
이 메서드를 해주는 이유는 원하는 요일을 셋팅하기 위해서도 있지만
year년 0월 1일 을 넣어주고
day of week와 thursday를 해줬을때에 가장 가까운 목요일로 년도와 일자를 셋팅해 주기 때문이다.
예를들어 year에 2021을 입력받을때에 1월 1일로 셋팅해두고 목요일로 값을 지정했을때에
2020년도의 12월에 목요일이 더 가깝다면 2021년이 아닌 2020년 12월 마지막 목요일로 값이 설정되기 때문에
전년도의 마지막 목요일로 값이 설정된다면 7일을 더해줘 원하는 년도의 첫번째 목요일로 값을 설정해준다.
'공부 > Java 복습' 카테고리의 다른 글
Java ConvertedSecond (0) | 2021.09.25 |
---|---|
Java checkWord (0) | 2021.09.24 |
5DiceGame 자바 (0) | 2021.09.12 |
Java 학생 만들기 (0) | 2021.09.09 |
자바 학생 등급 출력하기 if문과 삼항연산자 이용 2가지 방법 (0) | 2021.08.25 |