/** date1이 date2보다 일찍 오는 지 여부를보고합니다. 예를 들어 isEarlierThan ("12-01-2015", "02-15-2017")은 true이지만 isEarlierThan ("10-11-2016", "10-11-2016") 및 isEarlierThan ("09-09 -1967 ","02-15-1933 ")는 거짓입니다. */개체를 사용하지 않고 두 날짜를 비교하는 방법은 무엇입니까?
public static boolean isEarlierThan (String date1, String date2)
{
if(date1.compareTo(date2) > 0) {
return true;
}
else if (date1.compareTo(date2) <= 0) {
return false;
}
else {
return true;
}
}
이 코드는 종종 있지만 항상 작동합니다. 나는 테스트 케이스를 돌렸고 실패했다. 아래의 테스트 케이스는 아래와 같습니다.
public void testIsEarlierThan()
{
assertTrue(isEarlierThan("12-01-2015", "02-15-2017"));
assertFalse(isEarlierThan("10-11-2016", "10-11-2016"));
assertFalse(isEarlierThan("09-09-1967", "02-15-1933"));
assertTrue(isEarlierThan("02-14-2017", "02-15-2017"));
}
테스트 케이스를 실행할 때 처음 두 개만 작동하고 세 번째 테스트 케이스에서는 멈 춥니 다. 하지만 뭐가 잘못 됐는지 이해하지 못해? 첫 번째 작품은 세 번째 작품이 잘 작동해서는 안됩니까? 미리 감사드립니다!
이것은 문자열 비교가 작동하는 방식이기 때문에 세 번째 예제에서 '9'는 '2'다음입니다 –
왜? 'Date.compareTo()'가 이미 작동 할 때? 그리고 그렇지 않아? 캔트? 객체 사용에 대한 혐오감은 무엇입니까? – EJP
아 ....하지만 12시는 02 시일 이오? – SassyRegards201