본문 바로가기
우당탕탕 개발생활/_Java

[JAVA] 날짜, 요일, 월 관련된 정보 구하기

by J-2n 2021. 7. 17.

안녕하세요 :)

JAVA 개발자가 실무에 뛰어들어서 한번쯤은 쓰게 되는 (오늘 날짜 정보 구하기, 오늘이 몇요일 인지 구하기, 오늘이 올해의 몇주차인지 구하기, 금요일을  기준으로 최근 4주차 구하기, 최근 6개월 말일 정보 표시하기) 정보를 공유 해보겠습니다.

 


- 오늘 날짜 정보 구하기

Date today = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String todayStr = sdf.format(today);

- 오늘이 몇요일 인지 구하기

String[] week = {"일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"}

Calendar cal = Calendar.getInstance();
// 위에서 구한 날짜 정보를 넣어줌
cal.setTime(today);
int num = cal.get(Calendar.DAY_OF_WEEK)-1;
String today = week[num];

- 오늘이 올해의 몇주차인지 구하기

Calendar cal = Calendar.getInstance();
cal.setTime(today);
String weekIf = cal.get(Calendar.WEEK_OF_YEAR);
System.out.println(weekIf + "주차 입니다.");

- 금요일 기준으로 최근 4주차 구하기 (토요일부터 요번주 주차 인정)

int dayNum = cal.get(Calendar.DAY_OF_WEEK);

// 토요일
if(dayNum == 7) {
	// 오늘날짜의 주간의 금요일
	cal.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
} else {
	// 오늘 날짜 - 한개 주 (한주가 일요일부터 시작하기에 일요일도 포함)
	cal.add(Calendar.WEEK_OF_YEAR, -1);
	// 날짜가 있는 주간의 금요일
	cal.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
}

int weekNum = cal.get(Calendar.WEEK_OF_YEAR);

for(int i = 0 ; i < 4 ; i++) {
	cal.add(Calendar.WEEK_OF_YEAR, -i);
	cal.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
    System.out.println(sdf.format(weekNum +"주차");
    // 그 주차의 날짜
	System.out.println(sdf.format(cal.getTime()));
}

- 최근 6개월 말일 정보 표시하기

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Cal.add(Calendar.MONTH, -5);

int month = 0;

for(int i = 0; i <= 5; ++i) {

  // 마지막일로 설정
  preCal.set(Calendar.DATE, preCal.getActualMaximum(Calendar.DAY_OF_MONTH));

  month = preCal.get(Calendar.MONTH) + 1;

  // 해당월의 마지막 날 출력 yyyy-MM-dd형식
  System.out.println("yyyy-MM-dd : " + sdf.format(preCal.getTime()));
  // 현재달 7월 - 7월, 6월, 5월, 4월, 3월, 2월 출력
  System.out.println(String.format("%02d", month)+ "월");

  preCal.add(Calendar.MONTH, +1);
  
  month = preCal.get(Calendar.MONTH);
  
}