Dia da semana {0-7} no crontab tem 8 opções, mas temos apenas 7 dias em uma semana

109

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

Encontrei isso depois de pesquisar no Google, minha pergunta é por que os dois valores (0,7) correspondem ao domingo?

    
por Ruban Savvy 20.12.2013 / 09:50

4 respostas

121

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

When specifying day of week, both day 0 and day 7 will be considered Sunday. BSD and AT&T seem to disagree about this.

    
por 20.12.2013 / 10:09
27

Além da excelente resposta do @ ChrisDown, isso também pode ser uma boa solução para um problema de localização : "De acordo com calendários hebraicos e calendários cristãos tradicionais, o domingo é o primeiro dia da semana. " Ter os dois modos, o que é muito fácil de usar em programação, facilita o uso para qualquer grupo.

    
por 20.12.2013 / 10:18
1

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

    
por 30.05.2018 / 20:54
-5

Do manual:

day of week (0 - 7) (0 to 6 are Sunday to Saturday, or use names; 7 is Sunday, the same as 0)

    
por 20.12.2013 / 17:59

Tags