시작일 종료일 넣으면 YYYY-MM 형식으로 기간 목록 만들어주는 소스

2015. 3. 9. 11:06IT/Web-Java

 

 

파라미터 : 시작일, 종료일

구동방법 : 시작일, 종료일을 넣고 메소드를 수행하면 기간에 대한 YYYY-MM 형식으로 목록을 만들어줌

12월 처리 부분이 기존 로직에서 빠져있어서 2012-11 다음에 2012-12가 나오는 것이 아니라 2013-00이 출력되었었음.

그 부분에 대한 처리도 추가함.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
    /**
     * @param startDate
     * @param endDate
     * @return
     */
    public String[] getMonthList(String startDate, String endDate) {
        String startYear = startDate.substring(0,4);            // YYYY
        String startMonth = startDate.substring(5,7);            // MM
        String endYear = endDate.substring(0,4);            // YYYY
        String endMonth = endDate.substring(5,7);            // MM
 
        // 총 카운트
        int count = (Integer.parseInt(endMonth)-Integer.parseInt(startMonth))+(Integer.parseInt(endYear)-Integer.parseInt(startYear))*12+1;
        String[] monthList = new String[count];
        for ( int i = 0 ; i < count ; i++ )    {
            int enterYear = Integer.parseInt(startYear)+((Integer.parseInt(startMonth)+i)/12);
            int enterMonth = (Integer.parseInt(startMonth)+i)%12;
            
            if ( enterMonth == 0) {                                    // 12월
                monthList[i] = enterYear-1 + "-12";
            } else if ( enterMonth < 10 ) {                                // 1~9월
                monthList[i] = enterYear+"-0"+enterMonth;
            }  else {                                        // 10, 11월
                monthList[i] = enterYear+"-"+enterMonth;
            }
            System.out.println(" i >> " + i);
            System.out.println(" enterMonth >> " + enterMonth);
            System.out.println(" enterYear >> " + enterYear);
            System.out.println(" cal : >> " + monthList[i]);
        }
        return monthList;
    }
cs



************************************************************************************************

* 이건 시작일, 종료일 입력받아서 YYYYMMDD 형식으로 그 사이 기간 날짜를 뽑아주는 소스

************************************************************************************************

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
    /**
     * @param startDate
     * @param endDate
     * @return ArrayList<HashMap<String, Object>> 날짜 리스트
     * @throws ParseException 
     */
    public List<String> selectBetweenList(String startDate, String endDate) throws ParseException {
        List<String> list= new ArrayList<String>() ;
        
        // 날짜 포맷 지정
        DateFormat df = new SimpleDateFormat("yyyyMMdd");
        
        // Date 타입으로 파싱
        Date sDate = df.parse(startDate);
        Date eDate = df.parse(endDate);
        
        Calendar c1 = Calendar.getInstance();
        Calendar c2 = Calendar.getInstance();
        
        c1.setTime(sDate);
        c2.setTime(eDate);
        
        while(c1.compareTo(c2) != 1) {
            list.add(df.format(c1.getTime()));
            c1.add(Calendar.DATE, 1);
        }
        return list;        
    }
cs