使用 bash date,我可以让它返回相对于当前时间的星期几。
date --d='last Sunday' #Returns date of the Sunday before today
我还可以让它返回相对于其他日期的一天
date --d='02/1/2012 -2 days' #Returns date two days before Feb. 1, 2012
但是我怎样才能让它返回相对于某个非当前时间的星期几呢?我想做的是:
date --d='Sunday before 02/1/2012' #Doesn't work! I want Sunday before Feb. 1
如果可能的话,我什至希望能够链接字符串,以便我可以引用新日期的相对日期:
# Should return 2 days before the Sunday before Feb. 1, 2012
date --d='Sunday before 02/1/2012 - 2 days'
虽然这种链接并不那么重要。 bash date 是否有某种方法可以根据一周中的相对日期返回一天?
最佳答案
您可以使用一点天数算法:
base="02/1/2012"
feb1_dayofweek=$( date -d $base +%w )
target_dayofweek=0 # sunday
date -d "$base - $(( (7 + feb1_dayofweek - target_dayofweek) % 7 )) days"
结果:
Sun Jan 29 00:00:00 EST 2012
关于linux - 如何让 bash 日期脚本返回相对于非当前时间的星期几?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9203747/