shell脚本处理周相关的日期计算

本文介绍了如何在Shell脚本中进行与周相关的日期计算,包括获取当前周的开始和结束日期,以及如何根据特定日期查找所属周的其他日期。通过示例代码展示了解决这些问题的不同方法,适合需要在Shell环境中进行日期操作的开发者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/bin/bash

timer_start=`date "+%Y-%m-%d %H:%M:%S"`

# 计时器
timediff(){
    duration=$(($(date +%s -d "${3} ${4}") - $(date +%s -d "${1} ${2}")))
    echo "开始时间:${1} ${2}"
    echo "结束时间:${3} ${4}"
    if [[ $duration -lt 60 ]]
        then echo "执行耗时:${duration}s"
    elif [[ $duration -lt $((60*60)) ]]
        then m=$(($duration/60))
             s=$(($duration%60))
             echo "执行耗时:${m}m${s}s"
    else h=$(($duration/60/60))
         m=$(($(($duration%3600))/60))
         s=$(($duration%60))
         echo "执行耗时:${h}h${m}m${s}s"
    fi
}

# 给一个日期参数算周一
first_day_of_week(){
  b_diff=$((`date -d "${1}" +%u`-1))
  echo `date -d "${1} -${b_diff}days" "+%Y-%m-%d"`
}

# 算年周
yyyyww(){
  ww=`date -d "${1}" "+%V"`
  if [[ $((10#$ww)) -ge $((10#52)) ]]; then
    #statements
    yyyy=`date -d "${1} -7days" "+%Y"`
    yyyy_ww=${yyyy}${ww}
  elif [[ $((10#$ww)) -eq $((10#01)) ]]; then
      #statements
      yyyy=`date -d "${1} +7days" "+%Y"`
  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值