Dzień tygodnia {0-7} w crontab ma 8 opcji, ale mamy tylko 7 dni w tygodniu


113

Dzień tygodnia: Dozwolony zakres 0–7. Niedziela to 0 lub 7.

Znalazłem to po Googlingu, moje pytanie brzmi: dlaczego obie wartości (0,7) powinny odpowiadać niedzieli?


15
Wydaje

10
Ponieważ niedziela jest tak okropnym dniem, nie zgadzasz się? : P
Alko,

3
Ponieważ Amerykanie myślą, że niedziela jest pierwszym dniem tygodnia, Europejczycy twierdzą, że niedziela jest ostatnim dniem tygodnia.
Pieter B,

9
Nie zapomnij o Funday.
MDMoore313,

6
Ponieważ do siódmego dnia Bóg ukończył swoje dzieło, które uczynił, i odpoczął siódmego dnia od wszystkich swoich dzieł, które wykonał.
user84207

Odpowiedzi:


127

Jest to kwestia przenośności. We wczesnych Unicach, niektóre wersje crona zaakceptowały 0 jako niedzielę, a niektóre zaakceptowały 7 jako niedzielę - ten format jest próbą przenośności z obydwoma. From man 5 crontabin vixie-cron (podkreśl moje własne):

Przy określaniu dnia tygodnia zarówno dzień 0, jak i dzień 7 będą uważane za niedzielę. BSD i AT&T wydają się nie zgadzać w tej sprawie.


41
Jest 10 rodzajów ludzi, którzy zaczynają liczyć od 0, i ci, którzy zaczynają od 1.
Hagen von Eitzen,

34
@HagenvonEitzen Pamiętam ten żart inaczej: jest 10 rodzajów ludzi, którzy rozumieją binarny i ci, którzy tego nie rozumieją. - Także: Istnieją 2 rodzaje ludzi: (1.) ci, którzy zaczynają liczyć od 1, (1.) ci, którzy zaczynają od 0
leem

7
Mam inną wersję - są trzy rodzaje ludzi na świecie - ci, którzy mogą liczyć i ci, którzy nie mogą.
Flurbius,

25
Lub: Istnieją dwa rodzaje ludzi. Te, które mogą ekstrapolować z niepełnych danych.
Bernhard,

20
Lub: Na świecie jest 10 typów ludzi - tych, którzy rozumieją kod Graya, tych, którzy nie rozumieją i tych, którzy spodziewali się żartu o binarności.
OnoSendai,

28

Oprócz doskonałej odpowiedzi @ ChrisDown może to być także sprytne rozwiązanie problemu z lokalizacją : „Według hebrajskich kalendarzy i tradycyjnych kalendarzy chrześcijańskich niedziela jest pierwszym dniem tygodnia”. Oba sposoby, co jest naprawdę łatwe programowo, sprawia, że ​​jest łatwy w użyciu dla każdej grupy.


Kudos, za wsparcie @ l0b0
Ruban Savvy,

5
+1, dobra odpowiedź. Zakładam, że to jest powód, dla którego AT&T i BSD nie zgodziły się :-)
Chris Down

:) nadzieję, więc heh heh;)
Ruban Savvy

1

Mówiąc prościej, pole to 3 binarne bity, co daje od 000 do 111 lub od 0 do 7. Tak więc w 3-bitowym polu znajduje się łącznie osiem wartości. Dodatkowa wartość jest równa pierwszej, więc dla wygody możesz zacząć od 0 (niedziela) lub 1 (poniedziałek), zwiększać 6 razy i obejmować cały tydzień.


-6

Z instrukcji:

dzień tygodnia (0–7) (od 0 do 6 to niedziela do soboty lub użyj nazw; 7 to niedziela, to samo co 0)


16
W jaki sposób dodaje to nowe informacje, o których wydaje się, że PO nie wie?
Joseph R.
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.