如何找出数字X是否在数字Y的范围内? (但以循环的方式)

How to find out if number X is in range of number Y? (But in a circular way)

假设我有一系列数字 0-9。 我想知道数字 X 是否在数字 Y 的范围内,范围是 2.

因此,例如 Y=5,如果 X 是 3、4、5、6 或 7,则 X 在范围内。

   --Y-- 
0123456789

为此我可以做到:

isInRange = abs(X - Y) <= 2

但我在某种程度上需要它,范围是圆形的,再次从 0 开始:

     --Y--    -     --Y-    --     --Y    Y--     --    -Y--     -    --Y--
0123456789    0123456789    0123456789    0123456789    0123456789    0123456789

有人知道如何解决这个问题吗?

这在 javascript 中,但应该在任何语言中完成一些更改。看,我正在对每个数字取模,使它们在 [0, 9]

范围内

const isInRange = (x, y, range) => {
  const
    absDiff = Math.abs(x % 10 - y % 10),
    modRange = range % 10;
    
  return absDiff <= modRange || 10 - absDiff <= modRange;
}

console.log(isInRange(0, 9, 2))
console.log(isInRange(1, 9, 2))
console.log(isInRange(4, 7, 2))
console.log(isInRange(9, 7, 2))
console.log(isInRange(19, 7, 2))
console.log(isInRange(9, 7, 9))