본문 바로가기

TIL/Java

Java Calendar 만들기

반응형

createSchedule 함수는 매개변수로 해당 연도와 월을 입력받고

Scanner를 통해 사용자에게 저장하고 싶은 스케줄의 날짜와 내용을 입력받은 후에

LocalDate 함수를 이용해 매개변수로 입력받은 년도와 월 그리고 사용자가 입력한 날짜를

변수 schdule_day에 저장한다 (이 부분은 나중에 불러들일 때 사용할 예정인데 아직은 미사용)

그리고 sch라는 String타입 Array배열을 만들어서 사용자가 입력한 스케줄내용을 저장한다

그 후, FileOutputStream을 이용해서 스케줄에 해당하는 날짜와 입력내용을 지정해놓은 "schedule.txt"로 보낸다

그리고 반복문을 통하여 사용자가 입력한 내용을 콘솔창에 확인용으로 보여준다

pirntHoilday 함수는

위와 마찬가지로, 매개변수로 해당년도와 월을 입력받는다

미리 지정해놓은 String배열 holiday변수에는 공휴일들을 넣어놓고

LocalDate 함수를 이용해 매개변수로 입력받은 년도와 월 그리고 처음 시작일인 1을

holi 변수로 지정해놓는다

그 후, DateTimeFormatter 함수를 이용해서 "MM월"이라는 패턴을 holi_format 변수에 지정해주고

holi.f ormat을 이용해서 입력받은 holi를 message로 넣어준다

즉 11월을 입력받았다고 가정했을 때,

앞에 년도와 일을 제외하고 11월만 message에 담아줬다고 생각하면 된다

그리고 반복문을 통해서 String배열에 담긴 공휴일들의 개수만큼 돌면서

각각의 공휴일들이 message(몇월) 을 포함하고 있으면

포함하고 있는 공휴일들만 출력해준다

lastDayNum 함수는

말그대로 해당 년, 월의 마지막 날짜를 리턴해주는데

각 월마다 마지막날짜가 달라서

lengthOfMonth 클래스를 이용해서 매개변수로 받은 마지막 날짜를 리턴 시켜준다

startDay 함수는

위와 동일한데, 한 가지 다른 점은 getValue함수를 이용해서

무슨 요일부터 시작하는지 리턴해주는 함수이다

calendarView 함수는 사용자가 원하는 날짜의 달력을 콘솔에 보여주는 함수인데

처음에는 요일들을 입력해주고

매개변수로 받은 startDayValue =? 요일

7이 되었을 때, 즉 일주일이 지나갔을 때 다시 0으로 초기화시켜준다

그리고 String배열 check 변수에는 startDayValue + lastNum 만큼의 길이만큼 만드는데

주석처리 내용처럼, 어떤 요일로 시작하는지에 따라 앞에 tab의 개수가 달라지기 때문에

startDayValue와 마지막 날짜인 lastNum 더해준 길이만큼 만든다

그리고 처음에는 시작하는 요일만큼 tab으로 띄어주는 반복문을 만들고

그다음 반복문에서는,

맨 앞의 탭의 개수와 마지막 날짜까지 더해준 길이까지 반복문을 돌면서

1부터 반복문이 끝나는 마지막 날까지 check 변수에 String 타입으로 넣어준다

그리고, 마지막 반복문을 통해 check 배열을 돌면서 콘솔에 찍어주는데

if문으로 7로 나뉠 때마다 줄 바꿈을 해준다

메인에서는 사용자에게 연도와 월을 입력받아서 그 숫자들을 각 함수들의 인자 값으로 활용하여

달력을 띄어준 다음에 printHoliday 함수로 해당 월의 공휴일도 띄어준다

그리고 아직 마무리는 못했지만, 스케줄을 작성하고

작성한 스케줄을 가져오는 것은 DB를 완벽히 이해하고 진행할 예정이다

콘솔에 출력한 main

반응형

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

Java 행맨 구현  (0) 2021.08.06
Java 사용가능한 비밀번호 출력 (BruteForce)  (0) 2021.08.05
Java gui button puzzle  (0) 2021.08.04
Java 행사 이벤트 출력하기  (0) 2021.08.04
Java 차량5부제 코드 만들기  (0) 2021.08.04