Linux date自己实现代码
日期转天数
1 2 3 4 5 6 7 8 | function date2days { echo "$*" | awk '{ z= int ((14-$2)/12); y=$1+4800-z; m=$2+12*z-3; j= int ((153*m+2)/5)+$3+y*365+ int (y/4)- int (y/100)+ int (y/400)-2472633; print j }' } date2days `echo "2010-08-18 18:59:19" | sed 's/-/ /g;s/:/ /g' ` |
天数转日期
1 2 3 4 5 6 7 8 9 | function days2date { echo "$1" | awk '{ a=$1+2472632; b= int ((4*a+3)/146097); c= int ((-b*146097)/4)+a; d= int ((4*c+3)/1461); e= int ((-1461*d)/4)+c; m= int ((5*e+2)/153); dd=- int ((153*m+2)/5)+e+1; mm= int (-m/10)*12+m+3; yy=b*100+d-4800+ int (m/10); printf ( "%4d-%02d-%02d\n" ,yy,mm,dd) }' } days2date 14839 |
日期转分钟
1 2 3 4 5 6 7 8 9 | function date2minutes { echo "$*" | awk '{ z= int ((14-$2)/12); y=$1+4800-z; m=$2+12*z-3; j= int ((153*m+2)/5)+$3+y*365+ int (y/4)- int (y/100)+ int (y/400)-2472633; j=j*1440+$4*60+$5 print j }' } date2minutes `echo "2010-08-18 18:59:19" | sed 's/-/ /g;s/:/ /g' ` |
分钟转日期
1 2 3 4 5 6 7 8 9 10 | function minutes2date { echo "$1" | awk '{ i=$1; nn=i%60; i= int (i/60); hh=i%24; dd= int (i/24); i= int (i/24); a=i+2472632; b= int ((4*a+3)/146097); c= int ((-b*146097)/4)+a; d= int ((4*c+3)/1461); e= int ((-1461*d)/4)+c; m= int ((5*e+2)/153); dd=- int ((153*m+2)/5)+e+1; mm= int (-m/10)*12+m+3; yy=b*100+d-4800+ int (m/10); printf ( "%4d-%02d-%02d %02d:%02d\n" ,yy,mm,dd,hh,nn) }' } minutes2date 21369299 |
日期转秒数
1 2 3 4 5 6 7 8 9 | function date2seconds { echo "$*" | awk '{ z= int ((14-$2)/12); y=$1+4800-z; m=$2+12*z-3; j= int ((153*m+2)/5)+$3+y*365+ int (y/4)- int (y/100)+ int (y/400)-2472633; j=j*86400+$4*3600+$5*60+$6 print j }' } date2seconds `echo "2010-08-18 18:59:19" | sed 's/-/ /g;s/:/ /g' ` |
秒数转日期
1 2 3 4 5 6 7 8 9 10 | function seconds2date { echo "$1" | awk '{ i=$1; ss=i%60; i= int (i/60); nn=i%60; i= int (i/60); hh=i%24; dd= int (i/24); i= int (i/24); a=i+2472632; b= int ((4*a+3)/146097); c= int ((-b*146097)/4)+a; d= int ((4*c+3)/1461); e= int ((-1461*d)/4)+c; m= int ((5*e+2)/153); dd=- int ((153*m+2)/5)+e+1; mm= int (-m/10)*12+m+3; yy=b*100+d-4800+ int (m/10); printf ( "%4d-%02d-%02d %02d:%02d:%02d\n" ,yy,mm,dd,hh,nn,ss) }' } seconds2date 1282157959 |
日期转毫秒
1 2 3 4 5 6 7 8 9 | function date2milliseconds { echo "$*" | awk '{ z= int ((14-$2)/12); y=$1+4800-z; m=$2+12*z-3; j= int ((153*m+2)/5)+$3+y*365+ int (y/4)- int (y/100)+ int (y/400)-2472633; j=j*86400+$4*3600+$5*60+$6 printf ( "%d%s\n" ,j,$7) }' } date2milliseconds `echo "2010-08-18 18:59:19.073" | sed 's/-/ /g;s/:/ /g;s/\./ /g' ` |
毫秒转日期
1 2 3 4 5 6 7 8 9 10 11 12 | function milliseconds2date { echo "$1" | awk '{ i=$1; ms=i%1000; i= int (i/1000); ss=i%60; i= int (i/60); nn=i%60; i= int (i/60); hh=i%24; dd= int (i/24); i= int (i/24); a=i+2472632; b= int ((4*a+3)/146097); c= int ((-b*146097)/4)+a; d= int ((4*c+3)/1461); e= int ((-1461*d)/4)+c; m= int ((5*e+2)/153); dd=- int ((153*m+2)/5)+e+1; mm= int (-m/10)*12+m+3; yy=b*100+d-4800+ int (m/10); printf ( "%4d-%02d-%02d %02d:%02d:%02d.%03d\n" ,yy,mm,dd,hh,nn,ss,ms) }' } milliseconds2date 1282157959073 |
计算今天的N天之后的日期
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #!/bin/bash function date2days { echo "$1 $2 $3" | awk '{ z= int ((14-$2)/12); y=$1+4800-z; m=$2+12*z-3; j= int ((153*m+2)/5)+$3+y*365+ int (y/4)- int (y/100)+ int (y/400)-2472633; print j }' } function days2date { echo "$1" | awk '{ a=$1+2472632; b= int ((4*a+3)/146097); c= int ((-b*146097)/4)+a; d= int ((4*c+3)/1461); e= int ((-1461*d)/4)+c; m= int ((5*e+2)/153); dd=- int ((153*m+2)/5)+e+1; mm= int (-m/10)*12+m+3; yy=b*100+d-4800+ int (m/10); printf ( "%4d%02d%02d\n" ,yy,mm,dd) }' } year=`date +%Y`; month=`date +%m`; day=`date +%d` days=`date2days $year $month $day` N=5 let days-=$N days2date $days |
其他:http://bbs.chinaunix.net/thread-1772999-1-1.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!