자바

자바 오늘, 특정 날짜가 올해의 이달의 몇 번째 주인지 구하기.

알통몬_ 2019. 4. 10. 09:34
반응형


공감 및 댓글은 포스팅 하는데

 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 

도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 

만들어 나가겠습니다^^

 


제목처럼 오늘 or 특정 날짜가 올해의 또는 이달의 몇 번째 주인지

구하는 방법입니다.

방법은 매우 간단합니다.

먼저 날짜 형식을 정해야겠죠? 저는 yyyy-MM-dd로 결정했습니다.

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.KOREA);
private int getWeekOfYear(String date) {
Calendar calendar = Calendar.getInstance();
String[] dates = date.split("-");
int year = Integer.parseInt(dates[0]);
int month = Integer.parseInt(dates[1]);
int day = Integer.parseInt(dates[2]);
calendar.set(year, month - 1, day);
return calendar.get(Calendar.WEEK_OF_YEAR);
}

그리고 getWeekOfYear(String date) 메소드의 인자에

원하는 날짜를 넣기만 하면 됩니다.

오늘 날짜를 넣고 싶다면

int thisWeek = getWeekOfYear(sdf.format(new Date()));

요렇게 사용사면 됩니다.

주의하실 점은 

getWeekOfYear()에서

calendar.set(year, month - 1, day)에서 month 가 아니라 month - 1인걸 보실 수

있는데요.

월이 우리는 1부터 시작하지만 저 Calendar 클래스에서는 1월 = 0 입니다.

때문에 -1을 해줘야 우리가 원하는 월로 값이 입력됩니다.


올해의 몇 주차인지가 아니라 이달의 몇 주차인지를 구하시려면

Calendar.WEEK_OF_YEAR 대신에 Calendar.WEEK_OF_MONTH를 사용하심

됩니다.


어렵지 않죠? 이상입니다. 감사합니다.

반응형