使用GNU日期获取本周某一特定日期的完整日期



有没有办法获得当前星期五的日期,无论它是在当天的未来还是过去?

例如,今天是2021-07-10,所以本周的星期五是一天前。但如果今天是2021-07-05,那么本周的星期五将是未来的四天。

我知道使用date实用程序,您可以在上周五或下周五使用获得

date --date="last Friday"date --date="next Friday"

有没有一种方法可以在没有复杂逻辑的情况下得到本周星期五的日期?

我知道如何做你想做的事情的唯一方法是做下面的

date -d "next monday - $(($(date +%u) -1)) days"

当然,也有一些次要问题,比如哪一天是工作周的开始(不同(,等等。

这里有一个简单的脚本来打印一周的日期:

#!/bin/bash
for DAY in monday tuesday wednesday thursday friday saturday sunday
do
# date -d "next $DAY - $(($(date +%u) - 1)) days"
date -d "next $DAY - $(date +%u) days
done

它根据今天的日期产生以下输出:

Mon Jul  5 12:00:00 AM PST 2021
Tue Jul  6 12:00:00 AM PST 2021
Wed Jul  7 12:00:00 AM PST 2021
Thu Jul  8 12:00:00 AM PST 2021
Fri Jul  9 12:00:00 AM PST 2021
Sat Jul 10 12:00:00 AM PST 2021
Sun Jul 11 12:00:00 AM PST 2021

最新更新