2008년 7월 17일 목요일

java Calendar Test

java 날짜 계산하기

import java.sql.Date;
import java.text.SimpleDateFormat;
import java.util.Calendar;

public class CalendarTest{
public static void main(String []args) throws Exception
{

Calendar td = Calendar.getInstance(); //Calendar객체를 생성합니다.
Calendar dd = Calendar.getInstance();
td.set(2008, 06, 27); // 오늘일자
dd.set(2008, 07, 01); // 공연일자
//db문자열 20080701 를 2008 06 01 변환하는건 생략, 필요하시면 쪽지 주세요.
long resultTime = dd.getTime().getTime() - td.getTime().getTime(); // 차이 구하기
long resultDay = resultTime /(1000*60*60*24);// 일로 바꾸기
System.out.println(resultDay);
System.out.println(resultDay-1);//님이 원하는 차이

}

}

문]
예매 프로그램을 하나 짜고 있습니다.
db에서 공연일자를 받아서 오늘일자와 비교해서 예매취소시에 수수료를 %로 제하고 돌려주는건에요.
db에서 공연일자를 받고 오늘일자를 Calendar를 받아서 비교까지해서 수수료률를 정해서 값을 정하는것 까지는 했는데
1~2일전 30%, 3~7일전에는 10% 그이전은 0% 이런식을 했습니다. 여기까지는 쉽게 했는데
공연일자와 오늘일자를 비교할때 다른 달이 다르거나 년도가 다를때가 문제가 있습니다.
공연일자 : 20080701 일때
오늘일자 : 20080627 이라하면
공연일자 - 오늘일자 = 4일의 차이가 나겠죠. 그럼 수수료 10% 이런식으로 해야하는데
공연일자 - 오늘일자 = 4일이 아니라 74가 된다는거죠.
이걸 어떤식을 하면 좋을까요?
제가 한 방법은 db에서 공연일자를 String으로 받아서 int로 변환 오늘일자도 년,월,일을 String으로 변환후 세가지를 합해서 다시 int로 변환해서 비교했습니다.

댓글 없음:

댓글 쓰기

-


Sidewinder


World


FishMusic


LaughingBaby