1
내가 사용하는 경우 : GergorianCalendar.isLeapYear()를 호출 할 때 변수를 사용할 수 있습니까?
GregorianCalendar cal = (GregorianCalendar) GregorianCalendar.getInstance();
boolean yearIsLeapYear = cal.isLeapYear(2016);
그런 다음 내 varialbe의 yearIsLeapYear 제대로 true로 설정됩니다. 그러나 2016 대신 변수를 사용하면 작동하지 않습니다.
int year = 2016;
GregorianCalendar cal = (GregorianCalendar) GregorianCalendar.getInstance();
boolean yearIsLeapYear = cal.isLeapYear(year);
뭔가가 누락되었거나 변수를 isLeapyYear() 메소드에 전달할 수 없습니까? 프로그램에서 나는 연도 필드의 값을 사용자 입력에 따라 변경할 수 있고 현재 구현되는 최종 알고리즘이 현재 연도가 윤년이거나 다음 연도가 윤년 인 경우 다르게 동작해야한다고 쓰고 있습니다. 나는 이것이 수표를 수행하는 간단한 방법이라고 생각했다.
편집 보여주는 전체 코드
필드는 다음과 같습니다
private int year;
private boolean yearIsLeapYear , nextYearIsLeapYear, previousYearIsLeapYear;
다음과 같이 내가 생성자가 :
public FirstDayOfSummer(int currentYear) {
year = currentYear;
checkForLeapYears();
}
을 내가 생성자에서 호출하고 다음과 같은 방법
private void checkForLeapYears(){
GregorianCalendar cal = (GregorianCalendar) GregorianCalendar.getInstance();
//checking for a leap year using the current value of "year"
if(cal.isLeapYear(year)){
yearIsLeapYear = true;
}
else{
yearIsLeapYear = false;
}
//checking for a leap year using the value of "year" + 1
if(cal.isLeapYear(year + 1){
nextYearIsLeapYear = true;
}
else{
nextYearIsLeapYear = false;
}
//checking for a leap year using the value of "year" - 1
if(cal.isLeapYear(year - 1){
previousYearIsLeapYear = true;
}
else{
previousYearIsLeapYear = false;
}
}
어떤 오류가 발생합니까? – SLaks
두 발췌 문장 모두에 대해 사실이됩니다 (놀라운 것은 아닙니다). 따라서 오류는 다른 곳에서 발생합니다. –
이것이 실제 코드인가 아니면'year' 초기화와'isLeapYear()'호출 사이에 구분되는 코드인가, 아니면'year' 필드에 접근하는 여러 쓰레드가 있을까요? – RealSkeptic