2つの日付を引数として取り、日付が現在の週であるかどうかを返すプログラムを作成しようとしていますが、への呼び出しに問題がありますisDateInCurrentWeek
。プログラムをコンパイルしようとすると、次のようなエラーが表示されます
requestHoliday.java:16: isDateInCurrentWeek(java.util.GregorianCalendar) in requestHoliday cannot be applied to (java.util.Calendar)
if (isDateInCurrentWeek(startDate) && isDateInCurrentWeek(endDate));
。
import java.util.*;
import java.text.*;
public class hols {
public static void main( String[] args ) {
DateFormat df = new SimpleDateFormat("dd MM yyyy");
Date start = df.parse(args[0]);
Date end = df.parse(args[1]);
Calendar startDate = new GregorianCalendar();
Calendar endDate = new GregorianCalendar();
startDate.setTime(start);
endDate.setTime(end);
if( isDateInCurrentWeek( startDate ) && isDateInCurrentWeek( endDate ));
System.out.println( "Date is in current week!" );
}
public static boolean isDateInCurrentWeek(GregorianCalendar date) {
Calendar currentCalendar = GregorianCalendar.getInstance();
int week = currentCalendar.get(Calendar.WEEK_OF_YEAR);
int year = currentCalendar.get(Calendar.YEAR);
Calendar targetCalendar = GregorianCalendar.getInstance();
targetCalendar = date;
int targetWeek = targetCalendar.get(Calendar.WEEK_OF_YEAR);
int targetYear = targetCalendar.get(Calendar.YEAR);
return week == targetWeek && year == targetYear;
}
}
メソッドは入力としてグレゴリオ暦を取り、2つの日付はグレゴリオ暦形式であるため、問題が何であるかはよくわかりません。誰か知ってる?