3
我需要能夠在Java或Groovy中計算今天的「星期五之前」。如何計算Java或Groovy中的「星期五之前」?
例如,如果今天是週一,2月21日是週五,2月18日
與「星期五之前」如果今天是星期二,2月1日「週五之前」將是週五,一月28.
什麼是最好的方法來做到這一點?我可以最有效地利用哪些現有類?
我需要能夠在Java或Groovy中計算今天的「星期五之前」。如何計算Java或Groovy中的「星期五之前」?
例如,如果今天是週一,2月21日是週五,2月18日
與「星期五之前」如果今天是星期二,2月1日「週五之前」將是週五,一月28.
什麼是最好的方法來做到這一點?我可以最有效地利用哪些現有類?
您可以使用一個循環:
Calendar c = Calendar.getInstance();
while(c.get(Calendar.DAY_OF_WEEK) != Calendar.FRIDAY)
{
c.add(Calendar.DAY_OF_WEEK, -1)
}
或者
Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_WEEK, -((c.get(Calendar.DAY_OF_WEEK) + 1) % 7));
我會讓這給了我,因爲給定的一天,已經經過的天數的方法。
// Uses now by default
public static int daysSince(int day) {
return daysSince(day, Calendar.getInstance());
}
// Gives you the number of days since the given day of the week from the given day.
public static int daysSince(int day, Calendar now) {
int today = now.get(Calendar.DAY_OF_WEEK);
int difference = today - day;
if(difference <= 0) difference += 7;
return difference;
}
// Simple use example
public static void callingMethod() {
int daysPassed = daysSince(Calendar.FRIDAY);
Calendar lastFriday = Calendar.getInstance().add(Calendar.DAY_OF_WEEK, -daysPassed);
}
Thanks!一個完美的方法,我正在嘗試做! – 2011-02-16 06:07:58