Задачка
Надо сделать проще - позволить минимуму быть больше максимума, тогда это будет считаться обратным направлением. И поменять названия параметров, чтобы не было привязки к понятию минимум и максимум, а было просто А и В, которые могут быть как началом, так и концом.
При вычислении доли важна лишь длина отрезка, а для неё не важно, является ли первый параметр началом или концом. Важно, чтобы один был больше другого и всё. Тогда просто сравниваешь два параметра - какой из них больше, и потом из большего вычитаешь меньший, и получаешь знаменатель. Если первый параметр оказался меньше второго, то идёт в одном направлении, если первый больше второго, то в противоположном. Тогда и числитель будет либо (current - А), либо (current - В). Но это надо добавить в описании метода, иначе непонятно, как вычисляется доля, и пользователь может получить неожиданный результат.
Тут дилемма. Если делать метод слишком универсальным, то он будет слишком сложным, и надо обмазать его кучей комментариев. А если делать метод узкозаточенный, то на другую, но похожую задачу, нужно делать другой метод, типа моего "1 минус результат первого метода".
Как бы сделать так, чтобы и метод был один, и был он не сильно сложным, и дополнительных параметров не вводить, и сложных пояснений не делать...