当前位置: 首页 > news >正文

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

写法一

在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"

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【C语言进阶篇】编译和链接
  • C语言从入门到实战----数据在内存中的存储
  • ETH 智能合约Gas文章整理
  • JavaScript、ES6与微信小程序之间的联系:工具箱、升级与新房子
  • C语言:文件操作解析
  • 用go实现一个任务调度类 (泛型)
  • 回归预测 | Matlab基于SAO-LSTM雪消融算法优化长短期记忆神经网络的数据多输入单输出回归预测
  • springboot项目
  • OpenCV4.9.0开源计算机视觉库安装教程
  • SQL注入四-PHP应用SQL二次注入堆叠执行DNS带外功能点黑白盒条件
  • 第 1 章 信息化和信息系统 -4
  • 栈内存和堆内存
  • HCIP-Datacom(H12-821)题库补充(3/26)
  • NTP服务搭建
  • 这回轮到鸿蒙禁用安卓了!!!
  • 深入了解以太坊
  • JavaScript-如何实现克隆(clone)函数
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • Median of Two Sorted Arrays
  • Mithril.js 入门介绍
  • mongodb--安装和初步使用教程
  • mysql 数据库四种事务隔离级别
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • orm2 中文文档 3.1 模型属性
  • Redash本地开发环境搭建
  • Zepto.js源码学习之二
  • 阿里云购买磁盘后挂载
  • 对象管理器(defineProperty)学习笔记
  • 给新手的新浪微博 SDK 集成教程【一】
  • 手写一个CommonJS打包工具(一)
  • 突破自己的技术思维
  • 用jQuery怎么做到前后端分离
  • 如何在招聘中考核.NET架构师
  • (10)STL算法之搜索(二) 二分查找
  • (C++20) consteval立即函数
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (k8s中)docker netty OOM问题记录
  • (Ruby)Ubuntu12.04安装Rails环境
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (三)Kafka 监控之 Streams 监控(Streams Monitoring)和其他
  • (四)Controller接口控制器详解(三)
  • (转)EXC_BREAKPOINT僵尸错误
  • (转)http协议
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .Net面试题4
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • 。。。。。