Java - Date, GregorianCalendar, 날자 연산 더하기, 빼기
Posted 08 17, 2009 16:54, Filed under: Language/JAVApackage sunshiny.util;
import java.util.Date;
import java.util.GregorianCalendar;
import java.text.*;
public class Utils {
/**
* Comment : 1. 입력받은 값 만큼의 날자를 더하기, 빼기 연산을 처리한다.
* 2. plus : 입력받은 수 만큼 더한 날자를 반환.
* 3. minus : 입력받은 수 만큼 뺀 날자를 반환.
* @version : 1.0
* @tags : @param value
* @tags : @return
* @date : 2009. 8. 17.
*/
public static String setOperationDate(String mode, int value){
SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMdd");
GregorianCalendar cal = new GregorianCalendar();
if(mode.equals("plus")){
cal.add(cal.DATE,value); //현재날짜에 value 값을 더한다.
}else if(mode.equals("minus")){
cal.add(cal.DATE,-value); //현재날짜에 value 값을 뺀다.
}
Date date = cal.getTime(); //연산된 날자를 생성.
String setDate = fmt.format(date);
return setDate;
}
}
-----------------------------------------------------------------------------------------
// get the supported ids for GMT-08:00 (Pacific Standard Time)
String[] ids = TimeZone.getAvailableIDs(-8 * 60 * 60 * 1000);
// if no ids were returned, something is wrong. get out.
if (ids.length == 0)
System.exit(0);
// begin output
System.out.println("Current Time");
// create a Pacific Standard Time time zone
SimpleTimeZone pdt = new SimpleTimeZone(-8 * 60 * 60 * 1000, ids[0]);
// set up rules for daylight savings time
pdt.setStartRule(Calendar.APRIL, 1, Calendar.SUNDAY, 2 * 60 * 60 * 1000);
pdt.setEndRule(Calendar.OCTOBER, -1, Calendar.SUNDAY, 2 * 60 * 60 * 1000);
// create a GregorianCalendar with the Pacific Daylight time zone
// and the current date and time
Calendar calendar = new GregorianCalendar(pdt);
Date trialTime = new Date();
calendar.setTime(trialTime);
// print out a bunch of interesting things
System.out.println("ERA: " + calendar.get(Calendar.ERA));
System.out.println("YEAR: " + calendar.get(Calendar.YEAR));
System.out.println("MONTH: " + calendar.get(Calendar.MONTH));
System.out.println("현재 월의 마지막 날자: " + calendar.getMaximum(Calendar.DAY_OF_MONTH));
System.out.println("WEEK_OF_YEAR: " + calendar.get(Calendar.WEEK_OF_YEAR));
System.out.println("WEEK_OF_MONTH: " + calendar.get(Calendar.WEEK_OF_MONTH));
System.out.println("DATE: " + calendar.get(Calendar.DATE));
System.out.println("DAY_OF_MONTH: " + calendar.get(Calendar.DAY_OF_MONTH));
System.out.println("DAY_OF_YEAR: " + calendar.get(Calendar.DAY_OF_YEAR));
System.out.println("DAY_OF_WEEK: " + calendar.get(Calendar.DAY_OF_WEEK));
System.out.println("DAY_OF_WEEK_IN_MONTH: "
+ calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH));
System.out.println("AM_PM: " + calendar.get(Calendar.AM_PM));
System.out.println("HOUR: " + calendar.get(Calendar.HOUR));
System.out.println("HOUR_OF_DAY: " + calendar.get(Calendar.HOUR_OF_DAY));
System.out.println("MINUTE: " + calendar.get(Calendar.MINUTE));
System.out.println("SECOND: " + calendar.get(Calendar.SECOND));
System.out.println("MILLISECOND: " + calendar.get(Calendar.MILLISECOND));
System.out.println("ZONE_OFFSET: "
+ (calendar.get(Calendar.ZONE_OFFSET)/(60*60*1000)));
System.out.println("DST_OFFSET: "
+ (calendar.get(Calendar.DST_OFFSET)/(60*60*1000)));
System.out.println("Current Time, with hour reset to 3");
calendar.clear(Calendar.HOUR_OF_DAY); // so doesn't override
calendar.set(Calendar.HOUR, 3);
System.out.println("ERA: " + calendar.get(Calendar.ERA));
System.out.println("YEAR: " + calendar.get(Calendar.YEAR));
System.out.println("MONTH: " + calendar.get(Calendar.MONTH));
System.out.println("WEEK_OF_YEAR: " + calendar.get(Calendar.WEEK_OF_YEAR));
System.out.println("WEEK_OF_MONTH: " + calendar.get(Calendar.WEEK_OF_MONTH));
System.out.println("DATE: " + calendar.get(Calendar.DATE));
System.out.println("DAY_OF_MONTH: " + calendar.get(Calendar.DAY_OF_MONTH));
System.out.println("DAY_OF_YEAR: " + calendar.get(Calendar.DAY_OF_YEAR));
System.out.println("DAY_OF_WEEK: " + calendar.get(Calendar.DAY_OF_WEEK));
System.out.println("DAY_OF_WEEK_IN_MONTH: "
+ calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH));
System.out.println("AM_PM: " + calendar.get(Calendar.AM_PM));
System.out.println("HOUR: " + calendar.get(Calendar.HOUR));
System.out.println("HOUR_OF_DAY: " + calendar.get(Calendar.HOUR_OF_DAY));
System.out.println("MINUTE: " + calendar.get(Calendar.MINUTE));
System.out.println("SECOND: " + calendar.get(Calendar.SECOND));
System.out.println("MILLISECOND: " + calendar.get(Calendar.MILLISECOND));
System.out.println("ZONE_OFFSET: "
+ (calendar.get(Calendar.ZONE_OFFSET)/(60*60*1000))); // in hours
System.out.println("DST_OFFSET: "
+ (calendar.get(Calendar.DST_OFFSET)/(60*60*1000))); // in hours
calendar.add(Calendar.DATE, -1); // 하루전
calendar.add(Calendar.MONTH, 5); // 5개월 뒤
calendar.add(Calendar.WEEK_OF_YEAR, -5); // 5 주전
System.out.println("calendar.getTime() : " + calendar.getTime()); //설정 내용 반영된 값 출력
}
/**
* Comment : 입력받은 수만큼 날자 더하기.
* @version : 1.0
* @tags : @param iDay
* @tags : @return
* @date : 2010. 10. 29.
*/
public static String getDate(int iDay){
Calendar temp = Calendar.getInstance();
StringBuffer sbDate = new StringBuffer();
temp.add(Calendar.DAY_OF_MONTH, iDay);
int nYear = temp.get(Calendar.YEAR);
int nMonth = temp.get(Calendar.MONTH)+1;
int nDay = temp.get(Calendar.DAY_OF_MONTH);
sbDate.append(nYear);
if(nMonth < 10)
sbDate.append("0");
sbDate.append(nMonth);
if(nDay < 10)
sbDate.append("0");
sbDate.append(nDay);
return sbDate.toString();
}
/**
* Comment : 등록된 날자와 현재날자를 비교하여 설정한 기간까지 New 이미지를 보여준다.
* @version : 1.0
* @tags : @return
* @date : 2010. 10. 29.
*/
public String getIsNewImage(){
if(logger.isDebugEnabled()){
logger.debug("######### StatusReturnTag.getIsNewImage()~! #########");
}
String setImg = "";
SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMdd");
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -this.dateValueEnd);
int createDate = Integer.parseInt(fmt.format(this.dateValue));
int nowDate = Integer.parseInt(fmt.format(cal.getTime()));
if(nowDate < createDate){
setImg = "<img src='${contextPath}/img/img_b_04.gif' border='0' />";
}
return setImg;
}
"Language / JAVA" 분류의 다른 글
| Java - Class 버전 확인 (0) | 2012/01/19 |
| Java - SimpleFormController - 조건 값에 따른 showForm 페이지 이동 (0) | 2011/11/30 |
| Java - getProperties 사용하여 현재 시스템의 정보를 추출 (0) | 2011/08/07 |
| Java - Jfreechart 패키지 이용 차트만들기 (0) | 2011/01/05 |
| Java - JfreeChart 사용시 한글깨짐(jar 파일 font 수정) (0) | 2011/01/04 |
| Java - Zip 파일 형식 압축및 압축풀기(한글깨짐방지 - jazzlib 사용) (8) | 2010/04/14 |
| Java - compile및 jar 파일 생성 (0) | 2010/04/14 |
| Java - BigDecimal의 필요성 (0) | 2009/10/31 |
| Java - Commons Net의 FTPClient 사용하여 FTP 접속및 파일 컨트롤 (0) | 2009/08/05 |
| Java - 특수문자 제어 Util (0) | 2009/07/17 |
Trackback URL : http://develop.sunshiny.co.kr/trackback/279