2013-04-01 2 views
1

일요일을 두 날짜 간의 차이에서 제외하고 싶습니다. 나는 두 날짜 사이의 차이를 얻기 위해 다음 코드를 사용했습니다 : 두 날짜의 차이에서 제외시킬 날짜의 날짜 가져 오기

leaveDuration = (int)((leavetodate.getTime() - leavefromdate.getTime())/(1000 * 60 * 60 * 24)); 

지금 나는 두 날짜 사이의 toexclude 일요일을 원한다. 또는 그 문제에 대해서는 일반적으로 휴일을 제외하고 싶습니다. 원하는 결과를 얻으려면 위의 코드를 어떻게 수정해야합니까?

+0

를 사용할 필요가? 나는 당신이 그 한 줄 이상의 코드를 필요로한다고 생각합니다. – Makoto

+0

예. 어떻게해야합니까? –

+1

코드에서 윤일/초 등을 고려하지 않도록주의하십시오. [joda-time] (http://joda-time.sourceforge.net/)과 같은 시간 라이브러리 사용을 고려하십시오. – wchargin

답변

1

당신은 그래서 당신은 달력뿐만 아니라 정의 공휴일에서 모든 일요일을 제외하는 설정 찾고있는 달력을

int getDiff(Date fromDate, Date toDate) { 
    Calendar c = Calendar.getInstance(); 
    c.setTime(fromDate); 
    int workDays = 0; 
    while (c.getTime().before(toDate)) { 
     if (c.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY) { 
      workDays++; 
     } 
     c.add(Calendar.DATE, 1); 
    } 
    return workDays; 
} 
+2

'if (c.get (Calendar.DAY_OF_WEEK)! = Calendar.SUNDAY)'또한 다음과 같은 공휴일을 고려해야합니다 :'if (c.get (Calendar.DAY_OF_WEEK)! = Calendar.SUNDAY &&! holidayCalendar.isNonWorkingDay (c.getTime()))','holidayCalendar'는 특정 실행 영역의 휴일에 대해 알고있는 델리게이트입니다. –