获取一周中指定两天之间的天数

Mar*_*ton 4 javascript arrays slice

我想找出一周中两天之间有多少天。

执行良好的slice方法似乎是这种情况;但我只是无法理解。

const days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday']

let today = 'Thursday'
let dispatch = 'Monday'
let remaining = '???'

console.log(`${remaining} Days until the next dispatch`)
Run Code Online (Sandbox Code Playgroud)

周一至周四很容易:

let remaining = days.slice(days.indexOf('Monday'), days.indexOf('Thursday')).length + 1
Run Code Online (Sandbox Code Playgroud)

但是(例如,星期四至星期一)需要一些我不知道的逻辑。

Nik*_*off 6

您可以删除slice和if并使用一些模运算。

const days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday']

function getDays(start, end) {
    return (days.indexOf(end) + days.length - days.indexOf(start)) % days.length + 1;
}
console.log(getDays("Monday", "Thursday")); // 4
console.log(getDays("Thursday", "Monday")); // 5
Run Code Online (Sandbox Code Playgroud)

如果您决定将星期一至星期四设为3而不是4(根据情况可能更自然),则从末尾减去+1。