День тижня {0-7} у crontab має 8 варіантів, але у нас є лише 7 днів на тиждень


113

День тижня: Дозволений діапазон 0 - 7. Неділя - 0 або 7.

Я виявив це після Googling, моє питання: чому обидва значення (0,7) повинні відповідати неділі?


15
Я думаю, що логічно подумати, що якась країна розпочинає тиждень понеділка, а якась інша в неділю, тому ставлять неділю першою і останньою вирішують це непорозуміння, я здогадуюсь
Ківі

10
Оскільки неділя - такий дивовижний день, ви не згодні? : П
Алько

3
Тому що американці вважають, що неділя є першим днем ​​тижня, а європейці кажуть, що неділя - останній день тижня.
Пітер Б

9
Не забувайте про Фундей.
MDMoore313

6
Тому що до сьомого дня Бог завершив Свою роботу, яку Він зробив, і на сьомий день відпочив від усієї своєї праці, яку Він зробив.
користувач84207

Відповіді:


127

Це питання мобільності. У ранніх Unices деякі версії cron приймали 0 як неділю, а деякі приймали 7 як неділю - цей формат є спробою бути переносним з обома. З man 5 crontabin vixie-cron (акцент власний):

Вказуючи день тижня, і день 0, і день 7 вважатимуться неділею. Здається, BSD та AT&T не згодні з цим.


41
Є 10 видів людей, тих, хто починає рахувати з 0, і тих, хто починає з 1.
Хаген фон Ейтцен

34
@HagenvonEitzen Я пам’ятаю жарт по-різному: Є 10 видів людей, тих, хто розуміє бінарне, і тих, хто цього не робить. - Також: Є 2 види людей: (1.) ті, хто починає рахувати з 1, (1.) ті, хто починається з 0.
1313

7
У мене є ще одна версія - у світі є три види людей - ті, на які можна порахувати, і ті, що не можуть.
flurbius

25
Або: Є два типи людей. Ті, які можуть екстраполювати з неповних даних.
Бернхард

20
Або: У світі є 10 типів людей - тих, хто розуміє сірий код, тих, хто цього не робить, і тих, хто очікував жарту з приводу бінарного.
OnoSendai

28

Окрім відмінної відповіді @ ChrisDown, це може бути також чудовим вирішенням питання локалізації : "Відповідно до єврейських календарів та традиційних християнських календарів, неділя є першим днем ​​тижня". Наявність його обох способів, що насправді просто програмно, робить його легким у використанні для будь-якої групи.


Кудо, за вашу підтримку @ l0b0
Ruban Savvy

5
+1, хороша відповідь. Я припускаю, що це причина, чому AT&T і BSD не погодилися :-)
Chris Down

:) сподіваюсь так хе-хе;)
Рубан Савді

1

Простіше кажучи, поле - це 3 двійкові біти, що дає вам 000 від 111 або 0 до 7. Отже, у 3-бітовому полі загалом вісім значень. Додаткову величину прирівнюють до першої, тому для зручності ви можете починати з 0 (неділя) або 1 (понеділок), зростаючи в 6 разів і охоплюючи повний тиждень.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.