본문 바로가기

TIL/Java

Java 행사 이벤트 출력하기

반응형

어떤 옷가게에서 할인 행사를 짝수번째 목요일마다 진행한다고 한다

년도를 입력하면 해당 연도의 모든 할인 날짜를 출력해주는 프로그램을 만들어보세요

콘솔에 출력한 화면

getFirstEventDay 라는 함수를 만들고 매개변수로 사용자가 입력한 year를 받는다는 계획을 세우고 시작하였다

Calender 함수를 이용해서 event라는 변수를 만들고

set함수를 사용하여 event를 사용자가 입력한 년도의 1월 1일로 지정하였다

그리고 다시 한번 set 함수를 사용하여 그 주의 목요일로 event를 설정하였고

하지만, 년도가 작년도로 넘어가는 경우가 생기기 때문에

(2018년 1월 1일이라 가정하였을때, 1월 1일이 금요일이라면 2017년 12월 31일이 목요일이 될 수 있는 경우들이 있다 )

가정문을 사용하여 event의 년도가 사용자가 입력한 year과 다르다면

날짜를 7을 더해주는 코드를 짰다.

위의 예시대로 2017년 12월31일이 목요일이라면 7을 더해 2018년 1월 6일이 목요일이 되기 때문에.

그리고 event를 리턴해준다. 이 때 event는 해당 연도의 처음 시작한 이벤트 날짜이다.

printEventOfYear 함수는 똑같이 매개변수로 사용자가 입력한 year를 가져온다

콘솔창에 이쁘게 띄우기 위해서, SimpleDateFormat을 이용해서 위 사진과 같이 작성하였다.

event는 getFirstEventDay 함수에서 가져온 첫 번째 이벤트 하는 날짜를 뜻한다

count는 이벤트 횟수를 체크하기 위해 설정하였고

while문을 사용하여 event의 년도와 year가 같을 때만

7일씩 계속 더해주고

짝수번째 목요일에만 이벤트를 진행하기 때문에,

가정문을 사용하여 DAY_OF_WEEK_IN_MONTH 함수 (그 달의 몇 번째 주인지 int형으로 반환시켜줌)가 2로 나뉘어 떨어질 때,

즉 짝수번째 주 일 때

프린트 해주고, count를 1씩 증가시킨다.

그리고 마지막으로 count를 출력해준다.

메인에서는 year를 입력받고

printEventOfYear에 인자 값에 입력받은 year를 입력해주면 프로그램 완성!

반응형

'TIL > Java' 카테고리의 다른 글

Java Calendar 만들기  (0) 2021.08.04
Java gui button puzzle  (0) 2021.08.04
Java 차량5부제 코드 만들기  (0) 2021.08.04
Java 주민등록번호 유효성 체크  (0) 2021.08.04
Java 핸드폰번호 유효성 체크  (0) 2021.08.03