День недели: допустимый диапазон 0–7. Воскресенье - 0 или 7.
Я нашел это после Google, мой вопрос: почему оба значения (0,7) должны соответствовать воскресенью?
День недели: допустимый диапазон 0–7. Воскресенье - 0 или 7.
Я нашел это после Google, мой вопрос: почему оба значения (0,7) должны соответствовать воскресенью?
Ответы:
Это вопрос переносимости. В ранних Unices некоторые версии cron принимали 0 как воскресенье, а некоторые принимали 7 как воскресенье - этот формат является попыткой переносимости с обоими. От man 5 crontab
в vixie-cron (выделение мое):
При указании дня недели воскресенье будет считаться как днем 0, так и днем 7. BSD и AT & T, похоже, не согласны по этому поводу.
В дополнение к превосходному ответу @ ChrisDown, это также может быть изящным решением проблемы локализации : «Согласно еврейским календарям и традиционным христианским календарям, воскресенье - первый день недели». Наличие обоих способов, что очень просто программно, облегчает использование для любой группы.
Проще говоря, поле состоит из 3 двоичных битов, что дает от 000 до 111 или от 0 до 7. Таким образом, в 3-битном поле имеется всего восемь значений. Дополнительное значение приравнивается к первому, поэтому для удобства вы можете начать с 0 (воскресенье) или 1 (понедельник), увеличить его в 6 раз и охватить целую неделю.
Из руководства:
день недели (0–7) (от 0 до 6 - от воскресенья до субботы или используйте имена; 7 - воскресенье, то же самое, что 0)