首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在bash脚本中确定4周周期的周数

在bash脚本中确定4周周期的周数
EN

Stack Overflow用户
提问于 2017-01-02 18:59:46
回答 2查看 607关注 0票数 0

我想要的是bash脚本中的4周循环

我的问题是:我如何知道这周的周期数字。

代码语言:javascript
复制
 week x monday : echo one
代码语言:javascript
复制
 week x+1 monday : echo two
代码语言:javascript
复制
 week x+2 monday : echo three
代码语言:javascript
复制
 week x+3 monday : echo four

再一次

代码语言:javascript
复制
 week x+4 monday : echo one and so on

我所拥有的是时代

(协调世界时),1970年1月1日星期四

因此

(协调世界时),1970年1月5日(星期一)(我可以将其设置为回应1)

有什么建议吗?转换日期是没有问题的。只需要一个大概的想法就可以了。

EN

回答 2

Stack Overflow用户

发布于 2017-01-02 19:32:38

我想你在期待和GNU date一起做这样的事情,

代码语言:javascript
复制
start_date=$(date -d "1970-01-05" '+%s')    # Corresponding to 1
end_date=$(date -d "2017-01-02" '+%s')      # Current week

日期之间的周数

代码语言:javascript
复制
numberOfWeeks=$(( ( end_date - start_date )/(60*60*24*7) ))
printf "%s\n" "$numberOfWeeks"
2452

现在,要确定这对应于哪周,请执行以下操作

代码语言:javascript
复制
printf "The current week %s belongs to week %d" "$(date)" "$(((numberOfWeeks%4) + 1))"
The current week Mon, Jan 02, 2017  4:47:09 PM belongs to week 1

再过几个星期,比如说。2017年3月4日星期一,使用上述计算,即

代码语言:javascript
复制
end_date=$(date -d "2017-03-27" '+%s')
printf "The week %s belongs to week %d" "$(date -d "2017-03-27")" "$(((numberOfWeeks%4) + 1))"
The week Mon, Mar 27, 2017 12:00:00 AM belongs to week 1

另一个例子是2017年3月的第三个星期一,

代码语言:javascript
复制
end_date=$(date -d "2017-03-20" '+%s')
printf "The week %s belongs to week %d" "$(date -d "2017-03-20")" "$(((numberOfWeeks%4) + 1))"
The week Mon, Mar 20, 2017 12:00:00 AM belongs to week 4
票数 1
EN

Stack Overflow用户

发布于 2017-01-02 19:35:32

您可以格式化日期输出以显示周数字:

代码语言:javascript
复制
function printweek {
   weeknr=$(date '+%V' -d "+$1 weeks")
   echo "$((weeknr%4))"
}

# Test
for week in 0 1 2 3 4 5 6 30 31 32 33; do
   echo "Week offset from today ${week} => $(printweek ${week})"
done

当你每年(又是第一周的第一周)开始计算时,这将会起作用。当你想继续在1月1日计数时,脚本将会更加困难。你可以看看@ can的解决方案。

另一种选择可能是查看最后一次运行的输出,并在最后一次运行的周编号上添加一个%4

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41425554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档