Joda Time - повторяющийся / недельный интервал - PullRequest
0 голосов
/ 22 октября 2018

Я хочу преобразовать строку, подобную приведенной ниже, в объект, который может оценивать мгновение как находящееся в периодическом интервале или нет:

Mon: 0800-1300

Я ищу какую-то функциональность, которую я мог бы использоватьпохоже на этот псевдокод:

class IntervalHolder {

    private PeriodicInterval interval;

    public IntervalHolder(String intervalString) {
        interval = Interval.parse(intervalString)
    }

    public boolean isWithinInterval(Instant instant) {
        return interval.contains(instant);
    }

В этом случае интервал от времени Йода «работает только один раз», потому что момент всегда также указывает дату.Есть ли в структуре класс, который бы работал для проверки недельных интервалов?

1 Ответ

0 голосов
/ 22 октября 2018

В Joda Time нет такой опции, потому что все соответствующие классы будут либо содержать полную информацию о временных границах (например, Duration и Interval), либо хранить период в заданной единице (то естьдело с Period).

Я бы порекомендовал просто (конечно, с экспортом всех констант в отдельные переменные):

public boolean isWithinInterval(Instant instant) {
    DateTime dateTime = instant.toDateTime();
    return dateTime.getDayOfWeek() == MONDAY
           && dateTime.getHourOfDay() >= 8
           && dateTime.getHourOfDay() <= 13;

Обратите внимание, что вы, конечно, можете создавать отдельные объекты Duration и Period и использоватьоба они в сравнении, но я не думаю, что это будет чище, чем представленное решение.

...