crontab中的星期几{0-7}有8个选项,但是一周中只有7天


113

星期几:允许的范围是0 –7。星期日是0或7。

我在谷歌搜索后发现了这个问题,我的问题是为什么两个值(0,7)都应对应于星期日?


15
我认为,合乎逻辑的想法是,某个国家/地区在星期一开始本周,其他国家在星期天开始,因此将星期日放在首位和最后是可以解决这种误解,我想
Kiwy 2013年

10
因为星期天是如此糟糕,所以您不同意吗?:P
Alko 2013年

3
因为美国人认为星期日是一周的第一天,但​​是欧洲人说星期日是一周的最后一天。
Pieter B

9
不要忘记Funday。
MDMoore313 2013年

6
因为到了第七日,上帝完成了他已经完成的工作,在第七天他从所有已完成的工作中休息了。
user84207 2014年

Answers:


127

这是可移植性的问题。在早期的Unices中,某些cron版本将0接受为星期日,而将某些版本的7接受为星期日-这种格式是试图将两者都可移植。从man 5 crontabvixie-cron中(强调我自己):

指定星期几时,第0天和第7天都将被视为星期日。 BSD和AT&T似乎对此持不同意见。


41
有10种人,那些谁从0开始计数,那些谁与1开始
哈根·冯·艾特森

34
@HagenvonEitzen我笑话不同:有十种人,懂二进制的人和不懂二进制的人。-另外:有2种人:(1)那些谁开始计数1,(1)那些谁0开始
leemes

7
我有另一个版本-世界上有三种人-可以计数的人和不能计数的人。
flurbius

25
或:有两种类型的人。那些可以从不完整的数据推断出来的数据。
Bernhard 2013年

20
或:世界上有10种类型的人-懂格雷码的人,不懂格雷码的人,以及那些期望对二进制开个玩笑的人。
OnoSendai 2013年

28

除了@ChrisDown的出色答案外,这还可能是解决本地化问题的一个好方法:“根据希伯来语日历和传统基督教日历,星期日是一周的第一天。” 通过编程实现这两种方式都非常容易,这两种方式都易于使用。


感谢您的支持@ l0b0
Ruban Savvy

5
+1,很好的答案。我认为这就是AT&T和BSD不一致的原因:-)
克里斯·

:)希望如此heh heh;)
Ruban Savvy 2013年

1

更简单地说,该字段是3个二进制位,为您提供000到111或0到7。因此,在3位字段中总共有八个值。多余的值等于第一个,因此,为方便起见,您可以从0(星期日)或1(星期一)开始,递增6次并覆盖整个一周。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.