4

如何获取一周中的星期一和星期日的日期?

这给出了“最后一个”星期一的日期:

date -dlast-monday +%Y%m%d

我想传递一个日期作为参数来查找该周的星期一和星期日。基本上,我想获得一周的周日和周一,任何日期,而不仅仅是上周一

4

2 回答 2

9

试试这个:

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"

您还应该考虑您想要在哪个日期获得哪个星期一或星期日(这不是很清楚)。这还取决于您是否将星期日视为一周的第一天或最后一天。

于 2013-10-01T09:47:02.147 回答
0

date可以像这样在命令行上解析日期:

date -j -f %s 1380628152

这是自 UNIX 纪元以来的日期+时间(以秒为单位)。您可以将上面的命令与您的命令结合起来。-j 表示您不想实际设置日期。-f 指定一个 strftime 字符串,用于解析命令行上的日期。

请注意,这是在 BSD 系统上,看起来您在 GNU 系统上,迄今为止有不同的选项(但它必须支持类似的东西)。

于 2013-10-01T11:51:47.977 回答