如何获取一周中的星期一和星期日的日期?
这给出了“最后一个”星期一的日期:
date -dlast-monday +%Y%m%d
我想传递一个日期作为参数来查找该周的星期一和星期日。基本上,我想获得一周的周日和周一,任何日期,而不仅仅是上周一。
如何获取一周中的星期一和星期日的日期?
这给出了“最后一个”星期一的日期:
date -dlast-monday +%Y%m%d
我想传递一个日期作为参数来查找该周的星期一和星期日。基本上,我想获得一周的周日和周一,任何日期,而不仅仅是上周一。
试试这个:
export day=2013-10-01
date -d "$day -$(date -d $day +%w) days"
这将始终打印给定日期(或日期本身)之前的星期日。
date -d "$day -$(date -d $day +%u) days"
这将始终打印给定日期之前的星期日(而不是日期本身)。
对于星期一,您需要添加+ 1 day
:
date -d "$day -$(date -d $day +%u) days + 1 day"
您还应该考虑您想要在哪个日期获得哪个星期一或星期日(这不是很清楚)。这还取决于您是否将星期日视为一周的第一天或最后一天。
date
可以像这样在命令行上解析日期:
date -j -f %s 1380628152
这是自 UNIX 纪元以来的日期+时间(以秒为单位)。您可以将上面的命令与您的命令结合起来。-j 表示您不想实际设置日期。-f 指定一个 strftime 字符串,用于解析命令行上的日期。
请注意,这是在 BSD 系统上,看起来您在 GNU 系统上,迄今为止有不同的选项(但它必须支持类似的东西)。