JSFiddle - React, Tailwind, and code Playground
HTML
<pre id="out"></pre>
JavaScript
function circularSum(number, amount, range) {
var _range = range[1] - range[0] + 1;
var result = number + amount;
while (result < range[0]) result += _range;
while (result > range[1]) result -= _range;
return result;
}
// usage:
var out = document.getElementById('out');
out.innerHTML += '105 - 7 = ' + circularSum(105, -7, [100,110]) + '<br>';
out.innerHTML += '105 - 18 = ' + circularSum(105, -18, [100,110]) + '<br>';
out.innerHTML += '105 - 118 = ' + circularSum(105, -118, [100,110]) + '<br>';
out.innerHTML += '105 + 7 = ' + circularSum(105, +7, [100,110]) + '<br>';
out.innerHTML += '105 + 18 = ' + circularSum(105, +18, [100,110]) + '<br>';
out.innerHTML += '105 + 118 = ' + circularSum(105, +118, [100,110]) + '<br>';