我試圖創建一個程序,它將兩個日期作爲參數,並返回日期是否在當前周內,但我在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;
}
}
不太清楚是什麼問題,因爲該方法需要一個GregorianCalendar作爲輸入,兩個日期都在陽曆的格式。有人知道嗎?
如果使用[喬達時間(http://joda-time.sourceforge.net/)API,你永遠不會需要從現在開始抓你的頭,我很確定。 – Lion 2013-02-19 20:01:19