2013-11-25 3 views
2

을 나는이 형식에 몇 날짜가 : 31/08/13 나는 내가해야 할 것은 이전을 얻는 것입니다2 달 사이의 일 수를 가져올 수 없습니다 - 특정한 경우

xls 파일에서 tehm 받고 있어요 이 날짜 사이의 일을 계산합니다. 나는 정말로 무엇을해야할지 모른다.

코드 *

Calendar start = Calendar.getInstance(); 
           Calendar end = Calendar.getInstance(); 
           end.setTime(row.getCell(0).getDateCellValue()); 
           start.add(start.MONTH,-1); 

           Date startDate = start.getTime(); 
           Date endDate = end.getTime(); 
           long startTime = startDate.getTime(); 
           long endTime = endDate.getTime(); 
           long diffTime = endTime - startTime; 
           long diffDays = diffTime/(1000 * 60 * 60 * 24); 

           if(diffDays < 0){ 
            System.out.println(Math.abs(diffDays)); 
           } 

           DateFormat dateFormatw = DateFormat.getDateInstance(); 
           System.out.println("The difference between "+ 
            dateFormatw.format(startDate)+" and "+ 
            dateFormatw.format(endDate)+" is "+ 
            diffDays+" days."); 

편집 그러나 그것은 잘못된 것 : 여기

내가 시도하는 것이다. 너무 피곤해서 정말 내 마음을 이해할 수 없습니다. 나는 운이없이 너무 많은 시간을 잃었다.

나는이 2 날짜 endTimestartTime

저를 도와주세요 사이에, 전 같은 날짜하지만 한 달 얻으려고하고, 일 계산!

+0

체크 아웃 조다 시간 : http://www.joda.org/joda-time/ – Bizmarck

+0

어떻게 잘못됩니까? 예외? 오류? 잘못된 출력입니까? 어쩌면 분할 피연산자 중 하나를 이중화 할 필요가 있습니다. –

+0

예를 들어 주시겠습니까? – isnot2bad

답변

1

ProdCalendar이 무엇인지는 모르겠지만 아마도 프로젝트 내부에있을 것입니다. 하지만 간단한 방법은 (내가 생각하는) 당신이 원하는 무엇을이 날짜 사이에 일의 수를 얻는 것은 이것이다 : 당신의 코드에서

//First date 
Date d1 = dateFormat.parse("31-10-13"); 

//Second date 
Date d2 = dateFormat.parse("31-08-13"); 

//Interval:  
long intervalMs = d1.getTime() - d2.getTime(); 
long intervalDays = intervalMs/(1000*60*60*24); 

, date22은 그래서 현재의 것입니다 new date()로 초기화된다 시스템 시간. 스프레드 시트에서 검색 한 날짜와 비교합니다 (부작용이있는 방식으로). 그래서 중복 것으로 보인다,

Calendar cal = Calendar.getInstance(); 
cal.setTime(row.getCell(0).getDateCellValue()); 

다시 사용하지 않습니다 : 나는 또한 시작 근처에서이 라인이 일정 cal을 알 수 있습니다.

코드가 필요 이상으로 복잡하므로 달성하지 못했던 생각을 뒤로 물러서야합니다. 간단한 코드는 좋은 코드입니다.

+0

근본적으로 저는이 날짜가'31/08/13'이고'31/07/13'로 변환하고 싶습니다. 이 두 날짜 사이의 날짜를 계산하려면 코드를 변경하고 잠시 후에 내 질문을 편집 할 것입니다. :) – Slim

+1

단지 참고 사항 :'Math.ceil ((double) intervalMs/(1000 (예 : '2013-11-25 23:59'와 '2013-11-25 23:59'사이의 차이점이 아닌 경우 * 60 * 60 * 24)); 26 00 : 01' 하루 또는 0 일?). – Thomas

+0

캘린더에서 -1 롤을 사용할 수 있으며 날짜는 – tgkprog

관련 문제