Java

Java 주말(토요일, 일요일) 일자를 조회하는 프로그램

심나라 2024. 11. 23. 22:11
728x90

 

올해 일년치 주말(토요일, 일요일) 일자를 조회하는 프로그램.

 

import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.TextStyle;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;

public class DayOfWeekUtilTest {
    public static void main(String[] args) {
        List<Map<String, Object>> list = getDayOfWeek();
        for(int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }
    
    /**
     * 1년치 주말(토, 일) 정보 조회
     */
    public static List<Map<String, Object>> getDayOfWeek(){
        List<Map<String, Object>> dayOfWeekList = new ArrayList<>();
        
        // 현재 날짜
        LocalDate now = LocalDate.now();
        
        // 현재 년도
        int year = now.getYear();
        
        // 현재 년도 1월 1일 날짜
        LocalDate date = LocalDate.of(year, 1, 1);
        
        // 현재 년도 1월 1일의 요일
        DayOfWeek dayOfWeek = date.getDayOfWeek();
        
        while(now.getYear() == year){
        	
            String dayOfWeekStr = dayOfWeek.getDisplayName(TextStyle.SHORT, Locale.KOREAN);
            String locdate = date.format(DateTimeFormatter.ofPattern("yyyyMMdd"));

            // 요일이 주말(토, 일)
            if(dayOfWeekStr.equals("토") ||dayOfWeekStr.equals("일")){
                HashMap<String, Object> dataMap = new HashMap<String, Object>();
                dataMap.put("locdate", Integer.parseInt(locdate));
                dataMap.put("dateName", dayOfWeekStr);
                dataMap.put("isWeek", "Y");
                dataMap.put("isHoliday", "N");
                dataMap.put("year", year);
              	dayOfWeekList.add(dataMap);
            }
            
            date = date.plusDays(1);
            year = date.getYear();
            dayOfWeek = date.getDayOfWeek();
        };
        return dayOfWeekList;
    }
}

 

 

[ 출력결과 ]

{dateName=토, locdate=20240106, isWeek=Y, year=2024, isHoliday=N}
{dateName=일, locdate=20240107, isWeek=Y, year=2024, isHoliday=N}
{dateName=토, locdate=20240113, isWeek=Y, year=2024, isHoliday=N}
{dateName=일, locdate=20240114, isWeek=Y, year=2024, isHoliday=N}
{dateName=토, locdate=20240120, isWeek=Y, year=2024, isHoliday=N}
......

 

 

728x90