几个关于日期的小函数
#计算某日前若干天的日期
#date=YYYYMMDD
#Usage:command date days
str=$1
days=$2
yy=`echo $str|cut -c 1-4`
mm=`echo $str|cut -c 5-6`
dd=`echo $str|cut -c 7-8`
sav_dd=$days
days=`expr $days - $dd`
while [ $days -ge 0 ]
do
mm=`expr $mm - 1`
[ $mm -eq 0 ] && mm=12 && yy=`expr $yy - 1`
aaa=`cal $mm $yy`
bbb=`echo $aaa|awk '{print $NF}'`
days=`expr $days - $bbb`
done
dd=`expr 0 - $days`
expr $dd : "^.$" >; /dev/null && dd=0$dd
expr $mm : "^.$" >; /dev/null && mm=0$mm
echo $yy$mm$dd
#计算某日后若干天日期
#date=YYYYMMDD
#Usage:command date days
str=$1
days=$2
yy=`echo $str|cut -c 1-4`
mm=`echo $str|cut -c 5-6`
dd=`echo $str|cut -c 7-8`
days=`expr $days + $dd`
while [ $days -gt 0 ]
do
aaa=`cal $mm $yy`
bbb=`echo $aaa|awk '{print $NF}'`
sav_dd=$days
sav_mm=$mm
sav_yy=$yy
days=`expr $days - $bbb`
mm=`expr $mm + 1`
[ $mm -gt 12 ] && mm=1 && yy=`expr $yy + 1`
done
expr $sav_dd : "^.$" >; /dev/null && sav_dd=0$sav_dd
expr $sav_mm : "^.$" >; /dev/null && sav_mm=0$sav_mm
echo $yy$sav_mm$sav_dd
~
感觉上面两个挺实用的
#计算前一天日期
aaa=`echo $TZ|sed 's/.*/(../)//1/'`
aaa=`expr $aaa + 24`
eval aaa=`echo $TZ|sed 's/..$/+$aaa/'`
TZ=$aaa
export TZ
yy=`date +%y`
mm=`date +%m`
dd=`date +%d`
echo $mm$dd$yy
可以调用上面的函数推导出.
#取上月末日期
get_lastday_of_lastmonth()
{
yy=`date +%Y`
mm=`date +%m-1|bc`
[ $mm -lt 1 ] && mm=12;yy=`expr $yy - 1`
aaa=`cal $mm $yy`
dd=`echo $aaa|awk '{print $NF}'`
echo $yy$mm$dd
}
~
#计算两个日期间有多少天
#date1,date2:yyyymmdd
#Usage:command date1 date2
str=$1
yy1=`echo $str|cut -c 1-4`
mm1=`echo $str|cut -c 5-6`
dd1=`echo $str|cut -c 7-8`
str=$2
yy2=`echo $str|cut -c 1-4`
mm2=`echo $str|cut -c 5-6`
dd2=`echo $str|cut -c 7-8`
count_day=`expr $dd2 - $dd1`
while [ $yy2 -ne $yy1 -o $mm2 -ne $mm1 ]
do
mm2=`expr $mm2 - 1`
[ $mm2 -eq 0 ] && mm2=12 && yy2=`expr $yy2 - 1`
aaa=`cal $mm2 $yy2`
bbb=`echo $aaa|awk '{print $NF}'` count_day=`expr $count_day + $bbb`doneecho $count_day
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统