假设我有两个 LocalDate 对象,fromDate 和 toDate。我需要知道间隔内有哪些工作日 - 星期一、星期二等。而且,我还想知道哪些 daysOfMonth - 1 日、2 日,或者例如仅 20 日 - 从 20 日到 23 日。Joda 时间库中是否有任何有用的工具/方法可以帮助我?我不是在询问特定的算法,我可以自己编写它,但我不确定 Joda 的功能——也许它已经有了我可以重用的东西。
问问题
420 次
3 回答
1
这与我想的差不多:
或者可能是这样的(假设只有两个不同的月份):
public Boolean dayOfMonthExistInPeriod(final int dayOfMonth, final LocalDate from, final LocalDate until){
final DateMidnight tested = new DateMidnight(from.getYear(), from.getMonthOfYear(), dayOfMonth);
final DateMidnight tested2 = new DateMidnight(until.getYear(), until.getMonthOfYear(), dayOfMonth);
final Interval interval = new Interval(from.toDateMidnight(), until.toDateMidnight());
return interval.contains(tested) && interval.contains(tested2);
}
于 2012-04-11T13:06:15.340 回答
1
public static boolean isDayBetween(int dtc, DateTime from, DateTime to)
{
final int dayOfWeekFrom = from.dayOfWeek().get();
final int daysBetween = Days.daysBetween(from, to).getDays();
if (dtc >= dayOfWeekFrom && dtc <= (dayOfWeekFrom + daysBetween))
return true;
return false;
}
使用方法
DateTimeFormatter dtf = DateTimeFormat.forPattern("yyyy-MM-dd");
final DateTime from = dtf.parseDateTime("2000-07-08");
final DateTime to = dtf.parseDateTime("2000-07-13");
boolean res = isDayBetween(from, to, DateTimeConstants.THURSDAY)
于 2012-04-19T10:47:30.863 回答
0
于 2018-02-28T21:32:45.790 回答