Добавить смещение к баллу, используя функцию графика - PullRequest
0 голосов
/ 01 июля 2019

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

Одним из критериев, которые я хочу добавить, является близость к одной из 3 дат. Каждый фрагмент данных имеет значение даты, которое связано с окном времени, и я хочу, чтобы прибавление баллов было максимальным, если:

  • Элемент данных только что вошел в окно
  • Элемент данных вот-вот покинет окно
  • Дата элемента данных - это текущая дата

Элемент данных может не находиться в границах окна, в этом случае добавление оценки будет равно нулю. Если оно находится в окне, я бы хотел, чтобы сложение баллов постепенно уменьшалось по мере удаления от этих трех точек элемента данных, в идеале описываемого уравнением графика.

К сожалению, мой опыт построения графовых уравнений близок к нулю, поэтому я не уверен, с чего начать, возможно, за какой-то комбинацией sin, cos или tan. В идеале я хочу иметь возможность написать такой метод, как:

public double getPositionInWindowScore( Date itemDate, Date windowStart, Date windowEnd ) {
  if( itemDate.before( windowStart ) || itemDate.after( windowEnd ) {
    return 0.0;
  }
  ...
}

Я мог бы создать какой-то неуклюжий код с загрузкой if, но я уверен, что найдется более изящный способ, чем кто-то с гораздо лучшими математическими навыками, чем я мог бы предложить.

Буду признателен за любую помощь или указатели.

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...