在linux中展示本月最后一个周五的日期

3 篇文章 0 订阅

写法一

在Linux中,你可以使用date命令结合shell脚本来计算并展示本月最后一个周五的日期。以下是一个简单的bash脚本示例,用于实现这个功能:

#!/bin/bash  
  
# 获取下个月的第一天  
next_month=$(date -d "next month" +%Y-%m-01)  
  
# 计算本月的最后一天  
last_day_of_month=$(date -d "$next_month - 1 day" +%Y-%m-%d)  
  
# 初始化一个变量来存储最后一个周五的日期  
last_friday=""  
  
# 从本月的最后一天开始向前遍历,直到找到周五为止  
day=$(date -d "$last_day_of_month" +%d)  
while [ "$day" -ge 1 ]; do  
    # 获取当前遍历的日期的星期几(1代表周一,7代表周日)  
    weekday=$(date -d "$last_day_of_month - $((day-1)) days" +%u)  
      
    # 如果当前日期是周五(weekday等于5),则将其赋值给last_friday并退出循环  
    if [ "$weekday" -eq 5 ]; then  
        last_friday=$(date -d "$last_day_of_month - $((day-1)) days" +%Y-%m-%d)  
        break  
    fi  
      
    # 减少天数继续循环  
    ((day--))  
done  
  
# 输出本月最后一个周五的日期  
echo "本月最后一个周五的日期是: $last_friday"

你可以将以上脚本保存到一个文件中,比如last_friday_of_month.sh,然后在终端中通过运行bash last_friday_of_month.sh来执行它。脚本会输出本月最后一个周五的日期。

请注意,这个脚本假设你的系统时区设置正确,并且你的date命令支持-d选项和+%u、+%Y-%m-%d等格式化选项。这些特性在GNU date中通常是可用的,但如果你使用的是BSD风格的date(例如在macOS中),你可能需要调整脚本中的命令来适应不同的语法。

写法二

#!/bin/bash  
  
# Get the first day of the next month  
next_month=$(date -d "next month" +%Y-%m-01)  
  
# Calculate the last day of the current month  
last_day_of_month=$(date -d "$next_month - 1 day" +%Y-%m-%d)  
  
# Find the last Friday of the current month  
last_friday=$(date -d "$last_day_of_month - $(date -d "$last_day_of_month" +%u) days +6 days" +%Y-%m-%d)  
  
echo "The last Friday of the month is: $last_friday"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值