시작일 종료일 넣으면 YYYY-MM 형식으로 기간 목록 만들어주는 소스
2015. 3. 9. 11:06ㆍIT/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 |
'IT > Web-Java' 카테고리의 다른 글
Arrays.asList를 Map으로 초기화하기 (0) | 2022.12.21 |
---|---|
[자바] 동적 클래스 생성 및 멀티 쓰레드 사용한 배치 프로그램. (0) | 2016.03.07 |
[XSS] 처리 (0) | 2015.04.08 |
javax.mail.messagingexception could not connect to smtp host port 465 (1) | 2014.02.26 |