O dia da semana {0-7} no crontab tem 8 opções, mas temos apenas 7 dias na semana


113

Dia da semana: intervalo permitido de 0 a 7. O domingo é 0 ou 7.

Descobri isso depois do Google, minha pergunta é por que os dois valores (0,7) devem corresponder ao domingo?


15
Eu acho que um lógico pensar algum país começar a semana da segunda-feira e outra no domingo para puting domingo o primeiro eo último resolver este mal-entendido eu acho
kiwy

10
Porque domingo é um dia tão maravilhoso, você não concorda? : P
Alko

3
Porque os americanos acham que o domingo é o primeiro dia da semana, mas os europeus dizem que o domingo é o último dia da semana.
precisa

9
Não se esqueça da Funday.
MDMoore313

6
Porque no sétimo dia, Deus completou sua obra que havia feito, e descansou no sétimo dia de toda a sua obra que havia feito.
user84207

Respostas:


127

Esta é uma questão de portabilidade. No início do Unices, algumas versões do cron aceitavam 0 como domingo e outras 7 como domingo - esse formato é uma tentativa de ser portável com ambos. De man 5 crontabem vixie-cron (ênfase própria):

Ao especificar o dia da semana, o dia 0 e o dia 7 serão considerados domingo. BSD e AT&T parecem discordar disso.


41
Há 10 tipos de pessoas, aqueles que começam a contar com 0 e aqueles que começam com 1.
Hagen von Eitzen

34
@HagenvonEitzen Lembro-me da piada de maneira diferente: existem 10 tipos de pessoas: quem entende binário e quem não entende. - Também: Existem 2 tipos de pessoas: (1.) quem começa a contar com 1, (1.) quem começa com 0.
leemes

7
Eu tenho outra versão - existem três tipos de pessoas no mundo - aquelas que podem contar e aquelas que não podem.
flurbius

25
Ou: existem dois tipos de pessoas. Aqueles que podem extrapolar a partir de dados incompletos.
Bernhard

20
Ou: existem 10 tipos de pessoas no mundo - aqueles que entendem o código Gray, aqueles que não entendem e aqueles que esperavam uma piada sobre binário.
OnoSendai

28

Além da excelente resposta de @ ChrisDown, essa também pode ser uma solução bacana para um problema de localização : "De acordo com os calendários hebraicos e os calendários cristãos tradicionais, o domingo é o primeiro dia da semana". Tê-lo nos dois sentidos, o que é realmente fácil programaticamente, facilita o uso para ambos os grupos.


Parabéns, por seu apoio @ l0b0
Ruban Savvy

5
+1, boa resposta. Eu suponho que este é o motivo pelo qual a AT & T e BSD não concordou :-)
Chris Baixo

:) espero que sim heh heh;)
Ruban Savvy

1

Mais simplesmente, o campo é de 3 bits binários, fornecendo 000 a 111 ou 0 a 7. Portanto, há um total de oito valores em um campo de 3 bits. O valor extra é equiparado ao primeiro, portanto, por conveniência, você pode começar em 0 (domingo) ou 1 (segunda-feira), incrementar 6 vezes e cobrir uma semana inteira.


-6

Do manual:

dia da semana (0 - 7) (0 a 6 são de domingo a sábado ou use nomes; 7 é domingo, o mesmo que 0)


16
Como isso adiciona novas informações que o OP parece não conhecer?
Joseph R.
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.