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?

Ruban Savvy
fonte
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.

Chris Down
fonte
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.

l0b0
fonte
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.

Greg Nolte
fonte
-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)

Francisco Yepes Barrera
fonte
16
Como isso adiciona novas informações que o OP parece não conhecer?
Joseph R.