亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Linux Shell > 正文

Shell使用Epoch進行日期時間轉換和計算的幾個小函數

2020-07-27 19:00:05
字體:
來源:轉載
供稿:網友

核心代碼

當你遇到一個date命令不給力的系統時,可以試試這幾個小函數。#日期轉天數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'`#天數轉日期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#日期轉分鐘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'`#分鐘轉日期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#日期轉秒數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'`#秒數轉日期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#日期轉毫秒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'`#毫秒轉日期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天之后的日期

#!/bin/bashfunction 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=5let days-=$Ndays2date $days

計算某天的N天之后的日期

#!/bin/bashfunction 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=2010; month=01; day=20days=`date2days $year $month $day`let days+=5days2date $days

計算上一個星期的全部日期

#!/bin/bashfunction 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)  }'}function date2week {  echo "$1 $2 $3" | awk '{    z=int((14-$2)/12); y=$1+4800-z; m=$2+12*z-3;    dow=(int((153*m+2)/5)+$3+y*365+int(y/4)-int(y/100)+int(y/400)-2472629)%7;    print dow  }'}year=`date +%Y`; month=`date +%m`; day=`date +%d`days=`date2days $year $month $day`week=`date2week $year $month $day`let dateEnd=$days-$week-1let dateBegin=$dateEnd-6for ((i=$dateBegin;i<=$dateEnd;i++)); do  days2date $idone

日期時間轉換成毫秒

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    print j$7  }'}date2milliseconds `echo "2010-08-18 18:59:19.073" | /usr/xpg4/bin/awk -F'[:.-]+' '$1=$1'`

日期時間轉換成秒

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-07-21 00:00:00" | sed 's/-/ /g;s/:/ /g'`

判斷一個數字是否為合法日期

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  }'}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)  }'}num1=20105050num2=20101001arg1=`echo "$num1" | sed -r 's/(....)(..)(..)//1 /2 /3/g'`arg2=`echo "$num2" | sed -r 's/(....)(..)(..)//1 /2 /3/g'`days1=`date2days $arg1`date1=`days2date $days1`days2=`date2days $arg2`date2=`days2date $days2`[ "$num1" -eq "$date1" ] && echo "$num1 is valid date" || echo "$num1 is invalid date"[ "$num2" -eq "$date2" ] && echo "$num2 is valid date" || echo "$num2 is invalid date"

計算10分鐘之前的時間

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  }'}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)  }'}now=`date "+%Y-%m-%d %H:%M" | sed 's/-/ /g;s/:/ /g'`minutes=`date2minutes $now`let minutes-=10minutes2date $minutes

計算指定日期和當前系統日期之家相差多少天

#!/bin/bashfunction 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  }'}echo "Enter your date:"read inputInpuDays=$(date2days ${input:0:4} ${input:4:2} ${input:6:2})SysDays=$(date2days `date +"%Y %m %d"`)let result=$InpuDays-$SysDaysecho $result
#./test.shEnter your date:2011060525

上個星期周一的日期

#!/bin/bashfunction 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)  }'}function date2week {  echo "$1 $2 $3" | awk '{    z=int((14-$2)/12); y=$1+4800-z; m=$2+12*z-3;    dow=(int((153*m+2)/5)+$3+y*365+int(y/4)-int(y/100)+int(y/400)-2472629)%7;    print dow  }'}year=`date +%Y`; month=`date +%m`; day=`date +%d`days=`date2days $year $month $day`week=`date2week $year $month $day`let date=$days-$week-7days2date $date

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩资源在线观看| 国产精品白丝jk喷水视频一区| 黑人巨大精品欧美一区二区| 亚洲免费电影在线观看| 成人中文字幕+乱码+中文字幕| 久久久精品一区| 欧美亚洲一级片| 岛国视频午夜一区免费在线观看| 国产精品主播视频| 亚洲一区二区免费在线| 日韩禁在线播放| 日韩中文字幕第一页| 国产一区香蕉久久| 午夜欧美大片免费观看| 国产不卡av在线| 最好看的2019的中文字幕视频| 91干在线观看| 久久久亚洲国产天美传媒修理工| 亚洲视频免费一区| 日韩精品高清在线观看| 97在线日本国产| 欧美日韩在线观看视频小说| 成人福利视频网| 国产精品久久久久久久电影| 国产精品亚洲欧美导航| 国产在线久久久| 亚洲精品视频中文字幕| 亚洲奶大毛多的老太婆| 亚洲精品视频中文字幕| 欧美与黑人午夜性猛交久久久| 欧美性高跟鞋xxxxhd| 久久久久99精品久久久久| 在线性视频日韩欧美| 97视频在线观看免费| 欧美大尺度在线观看| 亚洲成人激情在线观看| 亚洲第一页中文字幕| 国产欧美欧洲在线观看| 精品中文字幕久久久久久| 黄色一区二区在线观看| 亚洲欧美日韩一区二区三区在线| 精品一区二区三区电影| 久久久久久久激情视频| 亚洲欧美日韩天堂一区二区| 亚洲va欧美va在线观看| 成人黄色生活片| 欧洲日本亚洲国产区| 国产va免费精品高清在线| 亚洲在线免费视频| 日韩美女视频中文字幕| 欧美日韩在线观看视频小说| 亚洲人成亚洲人成在线观看| 色噜噜狠狠狠综合曰曰曰88av| 欧美性xxxxxxxxx| 欧美在线一级视频| 色综合亚洲精品激情狠狠| 亚洲激情视频在线| 欧美电影电视剧在线观看| 国产欧美一区二区三区在线| 国产欧美日韩精品在线观看| 国产精品久久视频| 精品福利在线视频| 精品国产一区二区三区久久久狼| 亚洲美腿欧美激情另类| 欧美日韩国产第一页| 国产精品第一页在线| 国产精品白嫩初高中害羞小美女| 北条麻妃久久精品| 国产一区二区成人| 91成人精品网站| 日韩在线观看成人| 国产精品h在线观看| 亚洲第一av在线| 麻豆一区二区在线观看| 国产亚洲欧洲黄色| 91天堂在线观看| 日韩福利在线播放| 黑人巨大精品欧美一区免费视频| 国产一区二区色| 91精品久久久久久久久久久久久久| 亚洲片av在线| 国产成+人+综合+亚洲欧美丁香花| 国产精品www| 中文在线资源观看视频网站免费不卡| www.亚洲男人天堂| 国产亚洲成精品久久| 日韩中文综合网| 欧美精品久久一区二区| 51视频国产精品一区二区| 国产精品精品一区二区三区午夜版| 午夜精品福利视频| 亚洲高清在线观看| 日韩av中文在线| 国产a级全部精品| 国产精品www网站| 国产精品网址在线| 久久久亚洲国产天美传媒修理工| 国产精品福利小视频| 欧美精品激情在线观看| 中文字幕亚洲激情| 亚洲情综合五月天| 亚洲字幕一区二区| 精品久久久久久中文字幕| 欧美日韩在线视频一区| 国产成人精品av| 全亚洲最色的网站在线观看| 欧美日韩国产第一页| 久久天堂av综合合色| 亚洲女人天堂网| 国产精品欧美一区二区三区奶水| 国产一区红桃视频| 黄色成人在线免费| 日韩欧美aⅴ综合网站发布| 国产精品丝袜一区二区三区| 欧美性色xo影院| 色老头一区二区三区| 在线视频亚洲欧美| 91久久久在线| 91网在线免费观看| 97成人超碰免| 国产精品女视频| 欧美黑人一区二区三区| 国产在线999| 91沈先生在线观看| 中文字幕一精品亚洲无线一区| 国产亚洲成精品久久| 国产自产女人91一区在线观看| 欧美激情综合亚洲一二区| 91久久精品视频| 亚洲第一精品夜夜躁人人爽| 欧美乱大交xxxxx另类电影| 欧美极品欧美精品欧美视频| 亚洲精品久久久一区二区三区| 4438全国亚洲精品在线观看视频| 欧美日韩国产999| 51ⅴ精品国产91久久久久久| 国产精品久久77777| 中文字幕欧美精品日韩中文字幕| 日韩www在线| 亚洲精品福利在线观看| 国产精品99久久久久久人| 亚洲国产成人精品女人久久久| 欧美一性一乱一交一视频| 亚洲国产精品专区久久| 中文字幕国产亚洲2019| 欧美日韩视频免费播放| 尤物tv国产一区| 国产成人精品免高潮在线观看| 日韩av在线导航| 日韩中文字幕在线播放| 国产精品久久久久7777婷婷| 国产精品99久久99久久久二8| 久久久精品久久久久| 欧美有码在线视频| 中文字幕一区二区三区电影| 一区二区三区高清国产| 国内精品一区二区三区| 国产69精品99久久久久久宅男| 欧美超级乱淫片喷水| 97视频在线免费观看| 国产成人精品久久久| 色黄久久久久久| 亚洲欧美色婷婷| 国产在线视频不卡|