-4
두 날짜 사이의 일수 계산을 위해 웹에서 코드를 복사했습니다. 종종 잘못된 결과를 산출합니다. 예를 들어, 01/15/2008에서 03/15/2010 사이의 날짜는 790입니다.이 코드는 789를 반환합니다. 2013 년 12 월 30 일과 02/28/2017 사이의 날짜는 1156입니다. 코드는 1152를 반환합니다. 오류가 있습니까? 코드 또는 캘린더 클래스로 인해? 아래 코드를 복사하고 있습니다. 이것은 첫 번째 게시물이며 모든 프로토콜 오류에 대해 사과드립니다. 감사합니다, 닉자바 캘린더 클래스
import java.util.Calendar;
public class DateExperiment2
{
public static void main(String args[]) throws Exception
{
// Create Calendar instances
Calendar calendar1 = Calendar.getInstance();
Calendar calendar2 = Calendar.getInstance();
// Set the values for the calendar fields YEAR, MONTH, and DAY_OF_MONTH.
calendar1.set(2008, 1, 15);
calendar2.set(2010, 3, 15);
//Get Calendars' time value in milliseconds
long miliSecondForDate1 = calendar1.getTimeInMillis();
long miliSecondForDate2 = calendar2.getTimeInMillis();
// Calculate the difference in millisecond between two dates
long diffInMilis = miliSecondForDate1 - miliSecondForDate2;
//Convert milliseconds to days
long diffInDays = diffInMilis/(24 * 60 * 60 * 1000);
System.out.println(diffInDays);
}
}
이것을 줄이십시오. ~ [mcve]. 스윙 UI 나 isValidDateStr 또는 변수 a-f는 필요하지 않습니다. 단지'set'에 대한 호출을 하드 코딩해야합니다. 별개의 문제로서 실제로'java.util.Calendar'를 사용할 필요가 있습니까? 대신 java.time.LocalDate를 사용하는 것이 좋습니다. –
감사합니다. 이것은 나의 첫 번째 게시물이었다. 앞으로 귀하의 지침을 사용하겠습니다. 그러나 문제는 여전히 남아 있습니다. Calendar 클래스가 잘못된 결과를 반환합니까? – Nick
다음 질문을 기다릴 필요가 없습니다. 이 문서를 올바른 모양으로 편집해야합니다. 그러면 도움이 될뿐만 아니라 향후 독자에게 더 유용합니다. –