2016-08-04 4 views
2

Java에서 날짜 시간 목록 (기술적으로 Joda LocalDateTime 개체)이 있습니다. 나는 목록의 응축 된 형태를 인쇄하여 모든 날짜 범위를 축소하고자합니다. 다음 목록으로 뭔가 :날짜 목록을 날짜 범위 문자열로 변환

2013-11-24 
2013-11-25 
2013-11-26 

2013-11-28 
2013-11-29 
2013-11-30 


2013-12-03 

2013-12-05 
2013-12-06 
2013-12-07 
2013-12-08 
2013-12-09 
2013-12-10 
2013-12-11 

다음과 같은 출력 인쇄 할 것이다 :

2013-11-24->2013-11-26, 2013-11-28->2013-11-30, 2013-12-03, 2013-12-05->2013-12-11 

수동으로 다음 값을 비교 목록 반복보다이 작업을 수행 할 수있는보다 효율적인 방법이 있나요, 그리고 건설 문자열 ?

+0

문자열을 반복 및 비교하지 않고 구성하지 않아도됩니다. 그러나 java 8을 사용하면 스트림을 촬영하여 컴팩트하게 만들 수 있습니다. – noscreenname

+0

이것은 Java 7 응용 프로그램에 대한 지원이므로 유감스럽게도별로 도움이되지 않습니다 –

+0

입력 한 날짜 값을 이미 정렬 할 수 있습니까? – JavaHopper

답변

0

나는 이것을위한 클래스를 만들 것이다. 이 클래스의 객체를 만들고 isFollowing()으로 다음 날짜를 확인하십시오. true 일 경우 종료 날짜를 확인 날짜 (setEnd(dateToCheck))로 설정하십시오. 그렇지 않은 경우 새 DateRange 객체를 만듭니다. 이전에 값을 정렬해야합니다.

public class DateRange { 

    private Date mStart; 
    private Date mEnd; 

    public DateRange(Date start) { 
    mStart = start; 
    mEnd = start; 
    } 

    public DateRange(Date start, Date end) { 
    mStart = start; 
    mEnd = end; 
    } 

    public boolean isInside() { 
    // create your code 
    } 

    public boolean isFollowing(Date dateToCheck) { 
    // create your code 
    // check if dateToCheckis after start and end date 
    // and the difference between end and dateToCheckis must be one day 
    } 

    public Date getStart() { 
    return mStart; 
    } 

    public Date getEnd() { 
    return mEnd; 
    } 

    public void setStart(Date start) { 
    mStart = start; 
    } 

    public void setEnd(Date end) { 
    mEnd = end; 
    } 
} 
관련 문제