如何确定一个月的周数

B14*_*4D3 11 linux date

在 Linux CLI 上,有没有办法获取一个月中的星期几?也许还有另一种方法可以通过一个简单的(如date)命令来实现这一点?假设第 1 天到第 7 天是第一周,第 8 天到第 14 天是第二周,依此类推。

mgo*_*ven 21

date命令无法在内部执行此操作,因此您需要一些外部算法。

echo $((($(date +%-d)-1)/7+1))
Run Code Online (Sandbox Code Playgroud)

编辑:在 % 和 d 之间添加了一个减号

  • 抱歉,我不知道如何格式化评论以使其看起来更好。无论如何,实现的好主意,但是如果日期是 08 或 09,它会导致错误:-bash: (09: value too great for base (error token is "09"). 那是因为如果数值以 0 开头,它会被 C 语言解释为八进制数,所以 08 09 无效。对我来说,解决方法是从 %d 更改为 %e,%e 省略前导 0:echo $((($(date +% e)-1)/7+1)) (5认同)
  • 这是正确的 - 29+ 天是在该月的第 5 周。 (4认同)
  • Bash 只做整数运算。 (2认同)