public static ArrayList getMonthList(String startmonth, String endmonth) {
String sformat = "yyyyMM";
ArrayList result = new ArrayList();
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(sformat);
java.util.Date sdate = null;
java.util.Date edate = null;
try {
sdate = sdf.parse(startmonth);
edate = sdf.parse(endmonth);
} catch (Exception ex) {
ex.printStackTrace();
}
Calendar scal = Calendar.getInstance(TimeZone.getTimeZone("Asia/Seoul"));
Calendar ecal = Calendar.getInstance(TimeZone.getTimeZone("Asia/Seoul"));
scal.setTime(sdate);
ecal.setTime(edate);
do {
result.add(sdf.format(scal.getTime()));
scal.add(Calendar.MONTH, 1);
} while (!scal.after(ecal));
return result;
}
public static TreeMap getMonthList(String selectedMonth) {
TreeMap map= new TreeMap();
ArrayList list = new ArrayList();
Calendar nowCal= Calendar.getInstance(TimeZone.getTimeZone("Asia/Seoul"));
String nowMonth= nowCal.get(Calendar.YEAR)+(""+(100+nowCal.get(Calendar.MONTH)+1)).substring(1);
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyyMM");
if(nchk(selectedMonth).equals("")) {
selectedMonth=nowMonth;
}
//선택월과 이번달이 같거나 크다면 2년전부터 이번달까지
if(selectedMonth.compareTo(nowMonth)>=0) {
nowCal.add(Calendar.MONTH, -24);
list=getMonthList(sdf.format(nowCal.getTime()),nowMonth);
}
else if(selectedMonth.compareTo(nowMonth)<0) {
//선택월이 이번달보다 작고 이번달까지 12개월이 안된다.
//선택월이 201312 이고 이번달은 201401 인경우
Calendar selectedCal = Calendar.getInstance(TimeZone.getTimeZone("Asia/Seoul"));
String startMonth="";
String endMonth="";
try {
selectedCal.setTime(sdf.parse(selectedMonth));
}catch(Exception ex) {
ex.printStackTrace();
}
selectedCal.add(Calendar.MONTH, 12);
if(selectedCal.after(nowCal)) {
endMonth=sdf.format(nowCal.getTime());
nowCal.add(Calendar.MONTH, -24);
startMonth=sdf.format(nowCal.getTime());
}else {
endMonth=sdf.format(selectedCal.getTime());
selectedCal.add(Calendar.MONTH, -24);
startMonth=sdf.format(selectedCal.getTime());
}
list=getMonthList(startMonth,endMonth);
}
if(list!=null && list.size()>0) {
for(int i=0; i<list.size();i++) {
String val=(String)list.get(i);
String year= val.substring(0,4);
ArrayList monthList=(ArrayList)map.get(year);
if(monthList==null) {
monthList=new ArrayList();
}
monthList.add(val);
map.put(year, monthList);
}
}
return map;
}
public static LMultiData getYearList(String selectedYear) {
LMultiData md= new LMultiData();
Calendar nowCal= Calendar.getInstance(TimeZone.getTimeZone("Asia/Seoul"));
SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy");
Calendar selCal= Calendar.getInstance(TimeZone.getTimeZone("Asia/Seoul"));
try {
selCal.setTime(sdf.parse(selectedYear));
} catch(Exception ex) {
ex.printStackTrace();
}
//선택년도부터 2년 전까지의 년도를 붙인다. 최근년도 순서
while (!selCal.after(nowCal)) {
LData ld= new LData();
ld.setString("key", nowCal.get(Calendar.YEAR)+"");
ld.setString("value", nowCal.get(Calendar.YEAR)+" 년");
md.addLData(ld);
nowCal.add(Calendar.YEAR, -1);
}
int prevYearCnt=2;
for(int i=1; i<= prevYearCnt; i++) {
selCal.add(Calendar.YEAR, -1);
LData ld= new LData();
ld.setString("key", selCal.get(Calendar.YEAR)+"");
ld.setString("value", selCal.get(Calendar.YEAR)+" 년");
md.addLData(ld);
}
/*
* //선택년도부터 2년 전까지의 년도를 붙인다. 최근년도 역순서
int prevYearCnt=2;
selCal.add(Calendar.YEAR, -1*prevYearCnt );
for(int i=0; i< prevYearCnt; i++) {
selCal.add(Calendar.YEAR, i);
LData ld= new LData();
ld.setString("key", selCal.get(Calendar.YEAR)+"");
ld.setString("value", selCal.get(Calendar.YEAR)+"");
md.addLData(ld);
}
selCal.add(Calendar.YEAR, 1);
while (!selCal.after(nowCal)) {
LData ld= new LData();
ld.setString("key", selCal.get(Calendar.YEAR)+"");
ld.setString("value", selCal.get(Calendar.YEAR)+"");
md.addLData(ld);
selCal.add(Calendar.YEAR, 1);
}
*/
return md;
}
'라이브러리' 카테고리의 다른 글
로딩 프로그레시브 이미지 (0) | 2014.01.13 |
---|