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

首頁(yè) > 開(kāi)發(fā) > Linux Shell > 正文

Shell腳本實(shí)現(xiàn)的陽(yáng)歷轉(zhuǎn)農(nóng)歷代碼分享

2020-07-27 19:13:34
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

閑來(lái)無(wú)事,想在Linux下用shell寫(xiě)一個(gè)陽(yáng)歷轉(zhuǎn)農(nóng)歷的腳本,斷斷續(xù)續(xù)大概一個(gè)星期終于搞定?,F(xiàn)在拿出來(lái)與大家分享。

1、緣由

本腳本實(shí)現(xiàn)原理是查表法(因?yàn)楣接姓`差);基于農(nóng)歷新年為基準(zhǔn),對(duì)農(nóng)歷新年前后兩個(gè)不同的農(nóng)歷進(jìn)行計(jì)算。

寫(xiě)這個(gè)腳本之前是想在Linux 終端命令提示符中加入陽(yáng)歷及農(nóng)歷日期。在Ubuntu中有Lunar軟件可以獲取農(nóng)歷日期,但在Fedora或CentOS中并沒(méi)有類(lèi)似軟件,所以就想自己來(lái)實(shí)現(xiàn)一個(gè),但網(wǎng)上用其他語(yǔ)言寫(xiě)的一大把,如果再寫(xiě)沒(méi)什么必要。所以就想用shell來(lái)寫(xiě)一個(gè)。

2、功能及使用

功能:將具體的陽(yáng)歷日期轉(zhuǎn)換為農(nóng)歷日期。

時(shí)間范圍:1901~2099,對(duì)應(yīng)農(nóng)歷年時(shí)間為4598~4796

參數(shù)格式(無(wú)參數(shù)默認(rèn)為當(dāng)前系統(tǒng)日期):yyyymmdd

如2013年1月1日:

復(fù)制代碼 代碼如下:

$./lunar.sh 20130101
4709-11-20

3、完整數(shù)據(jù)

完整數(shù)據(jù)下載鏈接:
http://xiazai.VeVB.COm/201408/tools/lunar-20131202.7z

包中文件:

lunar.sh 主腳本,具體實(shí)現(xiàn)

datebases 農(nóng)歷元數(shù)據(jù)

change.log 更改日志

readme 腳本說(shuō)明及注意事項(xiàng)

主要腳本lunar.sh代碼如下:

#!/bin/shDATE=$@[ "$DATE" = "" ] && DATE=$(date +%Y%m%d)databases_path=databasesdate_year=$(echo $DATE |sed 's/^/(./{4/}/).*//1/')date_month=$(echo $DATE |sed 's/.*/(../)..$//1/')date_day=$(echo $DATE |sed 's/.*/(../)$//1/')date_days=$(date -d $DATE +%j)lunar_year=$(sed /$date_year/!d $databases_path |sed 's/^/(..../).*//1/')lunar_year_data=$(sed /$date_year/!d $databases_path |sed 's/.*/ /(.*/)//1/')lunar_year_data_bin=$(echo "ibase=16;obase=2;$lunar_year_data"|bc |sed -e :a -e 's/^./{1,23/}$/0&/;ta')new_year_month_bin=$(echo $lunar_year_data_bin |sed -e 's/^./{17/}/(./{2/}/).*//1/')new_year_month=$(echo "ibase=2;$new_year_month_bin"|bc |sed -e :a -e 's/^./{1,1/}$/0&/;ta')new_year_day_bin=$(echo $lunar_year_data_bin |sed -e 's/.*/(./{5/}/)$//1/')new_year_day=$(echo "ibase=2;$new_year_day_bin"|bc |sed -e :a -e 's/^./{1,1/}$/0&/;ta')new_year_days=$(date -d $date_year$new_year_month$new_year_day +%j)lunar_days=$(expr $date_days - $new_year_days + 1)befor_or_after=0if [ "$lunar_days" -le "0" ]; then  befor_or_after=1  date_year=$(($date_year - 1))  lunar_year=$(sed /$date_year/!d $databases_path |sed 's/^/(..../).*//1/')  lunar_year_data=$(sed /$date_year/!d $databases_path |sed 's/.*/ /(.*/)//1/')  lunar_year_data_bin=$(echo "ibase=16;obase=2;$lunar_year_data"|bc |sed -e :a -e 's/^./{1,23/}$/0&/;ta')filunar_leap_month_bin=$(echo $lunar_year_data_bin |sed -e 's/^/(./{4/}/).*//1/')lunar_leap_month=$(echo "ibase=2;$lunar_leap_month_bin"|bc)lunar_month_all_bin=$(echo $lunar_year_data_bin |sed -e 's/^./{4/}/(./{13/}/).*//1/')[ "$lunar_leap_month" = "0" ] && lunar_month_all_bin=$(echo $lunar_year_data_bin |sed -e 's/^./{4/}/(./{12/}/).*//1/')lunar_month_all=$(echo $lunar_month_all_bin |sed -e 's/0/29/ /g' |sed -e 's/1/30/ /g')if [ "$befor_or_after" = "0" ];then  lunar_month=1  lunar_day=$lunar_days  for i in $lunar_month_all  do   [ "$lunar_day" -gt "$i" ] && lunar_day=$(($lunar_day - $i)) && lunar_month=$(($lunar_month + 1))   [ "$lunar_day" = "$i" ] && break  doneelse  lunar_month=12  lunar_day=$((-$lunar_days))  lunar_month_all_bin=$(echo $lunar_month_all_bin |rev)  lunar_month_all=$(echo $lunar_month_all_bin |sed -e 's/0/29/ /g' |sed -e 's/1/30/ /g')  for i in $lunar_month_all  do   if [ "$lunar_day" -gt "$i" ]; then     lunar_day=$(($lunar_day - $i))     lunar_month=$(($lunar_month - 1))   else     lunar_day=$(($i - $lunar_day))     break   fi  donefiif [ "$lunar_leap_month" = "0" ]; then  echo $lunar_year-$lunar_month-$lunar_dayelse  if [ "$lunar_leap_month" -ge "$lunar_month" ]; then   echo $lunar_year-$lunar_month-$lunar_day  elif [ "$befor_or_after" = "0" ]; then   if [ "$(($lunar_leap_month + 1))" = "$lunar_month" ];then     lunar_month=$(($lunar_month - 1))     echo $lunar_year-*$lunar_month-$lunar_day   else     lunar_month=$(($lunar_month - 1))     echo $lunar_year-$lunar_month-$lunar_day   fi  else   echo $lunar_year-$lunar_month-$lunar_day  fifilunar.sh

4 修改歷史

2013-12-02

發(fā)現(xiàn)bug:如果農(nóng)歷上個(gè)月是大月,本月為小月,則上個(gè)月的三十輸出為本月的初一,原因是上個(gè)月剩下30天,這正好是上個(gè)月的三十,而本月是29天,29<30,下一次循環(huán)的時(shí)候又減本月的天數(shù),使得上個(gè)月的三十成為本月的初一

bug修改:添加判斷語(yǔ)句,如果農(nóng)歷剩余天數(shù)等于當(dāng)月的天數(shù)則不再循環(huán)

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
六月婷婷一区| 国产在线日韩在线| 亚洲一区国产视频| 欧美在线激情| 日韩激情视频在线| 久久免费公开视频| 日韩一区二区三区在线观看视频| 亚洲第一av| 18精品爽国产三级网站| 欧美贵妇videos办公室| 国产欧美日韩伦理| 一区二区三区国产在线| 麻豆免费在线| 久久av免费看| 成人av一级片| 裸体大乳女做爰69| 亚洲2020天天堂在线观看| 成人黄色生活片| 日本精品视频一区二区| 中文字幕无码精品亚洲资源网久久| 欧美日韩成人在线观看| 成人拍拍拍在线观看| 国产大片中文字幕| 黑巨人与欧美精品一区| 97视频在线免费| julia中文字幕久久亚洲蜜臀| 国产欧美日韩精品一区二区免费| 三年中文高清在线观看第6集| 热re66久久精品国产99热| 完美搭档在线观看| 99v久久综合狠狠综合久久| 亚洲男人第一av| 国产精品久久久久av电视剧| 国产午夜精品视频一区二区三区| 一级黄色录像免费看| 欧美一区二区三区不卡视频| 久久国产精品久久久久| 日本午夜精品久久久久| 激情欧美一区| 欧美黄色录像片| 97视频中文字幕| 色av中文字幕一区| 45www国产精品网站| 亚洲黄色片免费| 欧美精品成人网| 欧美 日韩 国产在线观看| 欧美经典影片视频网站| aa日韩免费精品视频一| 国产精品国产精品国产| 欧美精品成人| 最近中文字幕在线观看视频| 在线成人中文字幕| 国产免费久久av| 资源网第一页久久久| 成年人视频免费在线播放| 99免费精品在线| 欧美一区在线观看视频| 午夜精品久久久久久久白皮肤| 丰满的亚洲女人毛茸茸| 在线观看的av| 免费黄色在线播放| 亚洲中文一区二区| 亚洲精品视频免费在线观看| 8x8x视频在线| 亚洲字幕成人中文在线观看| 自拍亚洲一区欧美另类| 成人做爰视频www网站小优视频| 国产激情一区二区三区四区| 自拍偷拍亚洲图片| 色88久久久久高潮综合影院| 麻豆av在线免费看| 岛国精品在线| 国产真人真事毛片| 亚洲一级爰片777777| 在线视频观看你懂的| 91tv官网精品成人亚洲| 国产1区2区| 97影院理论| 欧美日韩日日摸| 亚洲免费网址| 在线黄色国产电影| 国产一区二区三区在线观看网站| 午夜精品久久久久久久久久久久久| 国产情侣高潮对白| 91国拍精品国产粉嫩亚洲一区| 日本三日本三级少妇三级66| 久久国产精品亚洲va麻豆| 亚洲按摩av| 永久91嫩草亚洲精品人人| 影音先锋中文字幕在线播放| 国产精品99久久久久久似苏梦涵| 五月天激情视频在线观看| 久久奇米777| 国产高清视频网站| 99精品国产高清在线观看| 韩国中文字幕hd久久精品| 在线观看黄色小视频| 亚洲欧美日韩国产精品| 日韩av中文字幕一区二区三区| 欧美电影在线观看免费| www国产一区| 亚洲国产欧美日韩精品| 精品少妇一区二区| 国产成人精品网| 精品亚洲一区二区三区四区| 天堂av在线网| 国产一区二区视频在线免费观看| 亚洲自拍偷拍网址| 日韩美女啊v在线免费观看| 国产熟女高潮一区二区三区| 成人性生交大片| 亚洲免费观看高清完整| 欧洲成人一区二区| 在线观看日批视频| 香蕉久久国产av一区二区| 视频一区三区| 国产精品午夜电影| 欧美日韩在线三级| 人妻aⅴ无码一区二区三区| 在线观看导航| 亚洲一区 二区| 一区精品久久| 久久亚洲AV无码专区成人国产| 国产在线88av| 国产高清一区在线观看| 亚洲综合久久av一区二区三区| 人人干人人草| 国产精品18hdxxxⅹ在线| 亚洲天堂久久| 欧美精品1区| 国产免费观看av| 老司机午夜精品| 中文字幕在线日韩| 日韩欧美中文第一页| 91老师国产黑色丝袜在线| 日韩免费高清一区二区| 少妇精品久久久一区二区三区| 国产精品自拍偷拍视频| 亚洲成年电人电影网站| 九九九九九伊人| 国产精品人人爽| 污网站在线播放| 国产成人亚洲综合a∨婷婷| 国产视频一区二区| 国产综合久久久久久鬼色| 天堂中文av在线资源库| 国产大片在线免费观看| 免费人成黄页网站在线一区二区| 中文字幕伊人| 日韩免费看片| 伊人久久大香线蕉综合75| 四虎影视一区二区| 国产成人精品在线看| 日韩精品视频网站| 狠狠色狠狠色综合网| 亚洲成人精品一区二区| 中文字幕欧美精品日韩中文字幕| 久久69av| 特级黄国产片一级视频播放| 懂色av中文字幕一区二区三区| 99色在线观看| 欧美激情一区二区三区高清视频| 国产91精品露脸国语对白| 羞羞网站在线观看| caoporn视频在线| 四虎影视网站| 久久精品欧美一区二区| 亚洲欧美日本一区二区三区| 欧美精品一区二区三区蜜桃视频| av大片在线观看| 99re6热在线精品视频播放| 可以免费在线观看的av| 欧美视频在线播放一区| 国产永久免费高清在线观看| 狠狠色狠狠色综合人人| 精品一区二区三区免费毛片爱| 久久精品国产免费看久久精品| 99re在线精品| 黄色三级高清在线播放| 尤物yw午夜国产精品视频| 久本草在线中文字幕亚洲欧美| 狠狠色狠狠色合久久伊人| 91精品国产自产| 国产午夜精品一区理论片| 福利一区二区在线观看| 最近中文字幕在线mv视频在线| 人妻丰满熟妇av无码区app| 亚洲人挤奶视频| www久久久久| 久久精品人人做人人爽电影蜜月| 九九九九九九九九| 丰满人妻一区二区三区免费视频| 蜜桃视频在线观看一区| 人妻av无码专区| 9久re热视频在线精品| 欧美女同一区| 久久av在线播放| 久久精品99北条麻妃| 欧美日韩一区在线观看| 国内精品国产三级国产在线专| 国产原创欧美精品| 欧美亚洲伦理www| 黑料不打烊so导航| 久久午夜国产精品| 国内精品在线播放| 麻豆av观看| 国产在线a视频| 日韩欧美黄色网址| 四虎精品成人影院观看地址| 天堂精品中文字幕在线| 91丨九色丨丰满| 欧美人妻精品一区二区免费看| 中文字幕亚洲精品视频| 性欧美长视频免费观看不卡| 中文字幕在线播放av| 亚洲偷熟乱区亚洲香蕉av| 日韩精品四区| 国产亚洲自拍偷拍| 中文字幕乱在线伦视频乱在线伦视频| 日韩有码在线播放| 精品久久久久久无| 懂色av蜜臀av粉嫩av分享吧最新章节| 久久久久久五月天久久久久久久久| 久久久久久久久久久久久国产精品| 欧美欧美欧美欧美首页| 国产欧美日韩在线播放| 先锋影音男人站你懂得| 99久久精品免费精品国产| 精品国产成人av| 国产亚洲精品久久久久久豆腐| 亚洲91精品在线观看| 国模大尺度私拍在线视频| 狠狠v欧美ⅴ日韩v亚洲v大胸| 国产欧美一区二区| 五月婷婷亚洲| 一区2区3区在线看| 成人国产一区二区三区精品麻豆| 免费黄色在线网址| 亚洲午夜在线电影| 国产精品视频线看| 国产理论视频在线观看| 天天影视欧美综合在线观看| 国产美女精品在线| 欧美18 19xxx| 亚洲激情网站免费观看| 欧美美女搞黄| 91福利国产精品| 91麻豆精品国产91久久久久推荐资源| 中文在线网在线中文| 亚洲第一区第二区| 五月婷婷激情在线| 久久久视频在线| 成人免费观看www在线| 欧美在线一区视频| 色帝国亚洲欧美在线| 亚洲av成人精品一区二区三区| 91精品国产一区二区三区香蕉| 国产午夜精品无码一区二区| 思热99re视热频这里只精品| 日本韩国一区二区三区| 亚洲第一福利网站| 精品久久在线观看| 亚洲第一se情网站| 性活交片大全免费看| 老司机成人免费视频| 免费看成年人视频在线观看| 9l视频自拍蝌蚪9l视频成人| 91精品网站在线观看| 一级毛片在线播放| 欧洲一级精品| 国产在线一区视频| 欧美日韩一区二区在线免费观看| 白白色免费视频| 99热这里只有精品1| 国产精品私房写真福利视频| 在线免费观看av的网站| 欧美激情一级欧美精品| 久久精品人人做人人综合| 曰本女人与公拘交酡| 在线黄色免费网站| 久久久久久a亚洲欧洲aⅴ| 美女mm1313爽爽久久久蜜臀| 一色屋成人免费精品网站| 一区二区三区视频| 韩国成人免费视频| 日本熟伦人妇xxxx| 国产精品灌醉下药二区| 不卡亚洲精品| 免费在线午夜视频| 精品视频在线播放一区二区三区| 久久香蕉国产线看观看99| 亚洲福利小视频| jizz免费观看视频| 神马电影网我不卡| 欧美日韩免费在线| 国产精品亚洲二区| 宅男视频免费在线观看视频| 欧美日韩伊人| 青青草视频在线视频| 亚洲视频你懂的| 婷婷丁香花五月天| 在线免费av网址| 91麻豆精品国产91久久久平台| 欧美激情黑人| 欧美另类69精品久久久久9999| 传媒视频在线| 丁香一区二区| 一级网站在线观看| 一区二区三区在线资源| 91夜夜揉人人捏人人添红杏| 无码人妻一区二区三区免费n鬼沢| 青青草久久伊人| 香蕉久久aⅴ一区二区三区| 久久久精品一区二区涩爱| 亚洲精品一二三区| 欧美激情第99页| 午夜精品影视国产一区在线麻豆| 欧美高清69hd| 伊人av电影| sis001欧美| 大波视频国产精品久久| 亚洲成a人片777777久久| 91久久夜色精品国产网站| 久久亚洲免费| 中文欧美日本在线资源| 欧美人善交videosg| 丝袜亚洲另类欧美综合| 欧美激情第二页|