获取星期一和星期日等。对于任何日期作为 Unix 中的参数一周

Posted

技术标签:

【中文标题】获取星期一和星期日等。对于任何日期作为 Unix 中的参数一周【英文标题】:Get Monday and Sunday etc.. for a week for any date as parameter in Unix 【发布时间】:2013-10-07 09:52:25 【问题描述】:

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

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

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

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

【问题讨论】:

【参考方案1】:

试试这个:

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"

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

【讨论】:

如何以 YYYY-MM-DD 格式输出此输出? 追加+%F到命令行:date -d "$day -$(date -d $day +%u) days" +%F【参考方案2】:

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

date -j -f %s 1380628152

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

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

【讨论】:

以上是关于获取星期一和星期日等。对于任何日期作为 Unix 中的参数一周的主要内容,如果未能解决你的问题,请参考以下文章

计算 Hive 中不包括星期日的天数

如何获取当月第一周的日期

JavaScript - 获取一周中下一天的日期(对于每一天)

错误获取星期几

从 Python(熊猫)中的日期列获取周开始日期(星期一)?

php已知日期获取星期