2012-09-26 3 views
1

에는 두 날짜 간의 차이를 다른 섹션으로 계산하여 계산 한 일 수를 구성하는 방법이 있습니다. 0 년, 11 개월, 30 일, 시간, 분 등논리 연산자를 사용하면 % 및/또는 다른 달이 다르고 양수가 다르고 몇 년이 윤년이되기 때문에 생각할 수 있습니다. 그것을하는 방법을 모르겠습니다. 어떤 도움이라도 대단히 감사 할 것입니다. 내 코드 :년, 월, 일, 시간 동안 일수를 별도 섹션으로 구성하십시오. Java

import java.util.*; 

public class CleanDate { 

    public static void main(String[] args) { 
     Calendar cDate = GregorianCalendar.getInstance(); 
     cDate.set(2011, 0, 31, 00, 00, 00); 
     Date date1 = cDate.getTime(); 
     Date date2 = new Date(); 
     Calendar calendar1 = Calendar.getInstance(); 
     Calendar calendar2 = Calendar.getInstance(); 
     calendar1.setTime(date1); 
     calendar2.setTime(date2); 
     long milliseconds1 = calendar1.getTimeInMillis(); 
     long milliseconds2 = calendar2.getTimeInMillis(); 
     long diff = milliseconds2 - milliseconds1; 
     long diffSeconds = diff/1000; 
     long diffMinutes = diff/(60 * 1000); 
     long diffHours = diff/(60 * 60 * 1000); 
     long diffDays = diff/(24 * 60 * 60 * 1000); 
     System.out.println("Time in minutes: " + diffMinutes + " minutes."); 
     System.out.println("Time in hours: " + diffHours + " hours."); 
     System.out.println("Time in days: " + diffDays + " days."); 
    } 
} 
+1

JODA 시간을 배우고 사용하십시오. 이것은 좋은 생각이 아닙니다. – duffymo

+0

기간은 얼마나됩니까? _ "2 개월, 11 일"_? –

+0

시간주기를 사용자 정의로 지정하여 사용자가 날짜를 입력하고 해당 날짜 이후의 년, 월, 일을 출력합니다. 나는 joda 시간을 조사 할 것이다. 도와 주셔서 감사합니다 – Will

답변

3

당신은 효과적으로 같은 Joda 시간을 사용할 수 Interval 두 날짜 사이의 시간 간격을 얻을 수 있습니다.

DateTime end = new DateTime(2006, 1, 1, 0, 0, 0, 0); 
Interval interval = new Interval(start, end); 
Period period = interval.toPeriod(); 
System.out.println(period.getYears()+" years, " 
period.getMonths()+" months, "+period.getWeeks()+" weeks, "+period.getDays()+", days"); 
관련 문제