------------------------------------------------------------------
//iDay 에 입력하신 만큼 빼거나 더한 날짜를 반환 합니다.
import java.util.*;
public 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 ( );
}
------------------------------------------------------------------
두 날짜의 차이를 얻고 싶으시면, 그렇게 문자열에서 부분만을 뽑아서 계산하는 것보다는 Date 클래스를 이용하는 것이 더 깔끔하고 바람직한 방법입니다.
다음 코드를 참고하세요. 코드를 보시면 충분히 이해하실 것이라 생각됩니다. 수행하면 결과값이 5가 나옵니다.
SimpleDateFormat는 지정한 형태로 들어온 문자열을 Date 객체로 바꿔주는 역할을 합니다. 그리고, 이렇게 바뀌어진 두 날짜의 차이를 millisecond 단위로 구하고 이것을 다시 일단위로 바꾸는 것이지요.
import java.text.SimpleDateFormat;
import java.util.Date;
public class DiffOfDate
{
public static void main(String[] args) throws Exception
{
System.out.println(diffOfDate("20031028", "20031102"));
}
public static long diffOfDate(String begin, String end) throws Exception
{
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
Date beginDate = formatter.parse(begin);
Date endDate = formatter.parse(end);
long diff = endDate.getTime() - beginDate.getTime();
long diffDays = diff / (24 * 60 * 60 * 1000);
return diffDays;
}
}
'Web > JSP_SERVLET' 카테고리의 다른 글
redirect, forward 차이 (0) | 2017.01.13 |
---|---|
ip 제한 (0) | 2016.06.17 |
라디오버튼, 체크박스, 셀렉트 박스 db값 불러와서 뿌려주기 (0) | 2016.05.13 |
문자열 구분자 분리, 주의사항 (0) | 2016.05.02 |
File Upload Rename Policy(파일이름 중복 정책) (0) | 2016.04.07 |
댓글