虽然您应该考虑使用Joda Time库,但从 Java Calendar API开始:
public Date getPreviousWorkingDay(Date date) { Calendar cal = Calendar.getInstance(); cal.setTime(date); int dayOfWeek; do { cal.add(Calendar.DAY_OF_MONTH, -1); dayOfWeek = cal.get(Calendar.DAY_OF_WEEK); } while (dayOfWeek == Calendar.SATURDAY || dayOfWeek == Calendar.SUNDAY); return cal.getTime();}仅考虑周末。您必须添加其他支票才能处理您考虑放假的日子。例如,你可以添加
||isHoliday(cal)到
while条件。然后实现该方法,如下所示:
public boolean isHoliday(Calendar cal) { int year = cal.get(Calendar.YEAR); int month = cal.get(Calendar.MONTH) + 1; int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH); if (month == 12 && dayOfMonth == 25) { return true; } // more checks return false;}


