Chinaunix

标题: 求助-天干地支的计算 [打印本页]

作者: bikkuri    时间: 2018-12-08 20:02
标题: 求助-天干地支的计算
本帖最后由 bikkuri 于 2018-12-10 09:45 编辑

什么意思?为什么我发的贴老是被删?超不满!
删我的贴至少给个理由吧?


作者: bikkuri    时间: 2018-12-08 20:08
回复 1# bikkuri


没办法,只能以回帖的方式发贴了!
拜托别再删了!

大家好,我有一个问题向大家请教。
从百度百科上我查到生辰八字的推算方法。
https://baike.baidu.com/item/%E7%94%9F%E8%BE%B0%E5%85%AB%E5%AD%97/87875?fr=aladdin
我想用一个命令得到当前时刻所对应的天干地支八字。
首先我用如下命令得到了天干地支八字中的前六字。
┌─[Sun Nov 25 02:27:39 CST 2018]
└─[root@apaciprtac:/tmp]# echo $(curl -s "http://nongli.hdjr.org/"|grep -oP "(?<=\<\/li\>\<li class\='A2'\>).*?(?=\<\/li\>)"|iconv -c -f GBK -t UTF8|head -n 3|tr -d " ")|awk -vOFS="|" '{print $1,$3,$2}'
2018年11月25日星期日射手座|戊戌年癸亥月辛酉日|2018年十月(小)十八属狗
┌─[Sun Nov 25 02:27:45 CST 2018]
└─[root@apaciprtac:/tmp]# echo $(curl -s "http://nongli.hdjr.org/"|grep -oP "(?<=\<\/li\>\<li class\='A2'\>).*?(?=\<\/li\>)"|iconv -c -f GBK -t UTF8|head -n 3|tr -d " ")|awk '{print$3}'
戊戌年癸亥月辛酉日
┌─[Sun Nov 25 02:27:53 CST 2018]
└─[root@apaciprtac:/tmp]#
根据百度百科的说法,02:27:53属于丑时(丑时:1点——凌晨2点59分),也就是说八字中第八字的时地支为“丑”字。
同时根据百度百科的说法,时天干要从日天干来推算,因为日天干为辛,所以辛日的丑时应该是“巳丑”,也就是说八字中第七字的时天干为“巳”字。
所以完整的八字应该是:
戊戌年癸亥月辛酉日巳丑时
请问应该如何修改命令从而能够得到完整的八字。
谢谢大家的帮助。



作者: bikkuri    时间: 2018-12-08 21:32
回复 1# bikkuri

大家好,我有一个问题向大家请教。
从百度百科上我查到生辰八字的推算方法。
https://baike.baidu.com/item/%E7%94%9F%E8%BE%B0%E5%85%AB%E5%AD%97/87875?fr=aladdin
我想用一个命令得到当前时刻所对应的天干地支八字。
首先我用如下命令得到了天干地支八字中的前六字。

┌─[Sun Nov 25 02:27:39 CST 2018]
└─[root@apaciprtac:/tmp]# echo $(curl -s "http://nongli.hdjr.org/"|grep -oP "(?<=\<\/li\>\<li class\='A2'\>).*?(?=\<\/li\>)"|iconv -c -f GBK -t UTF8|head -n 3|tr -d " ")|awk -vOFS="|" '{print $1,$3,$2}'
2018年11月25日星期日射手座|戊戌年癸亥月辛酉日|2018年十月(小)十八属狗
┌─[Sun Nov 25 02:27:45 CST 2018]
└─[root@apaciprtac:/tmp]# echo $(curl -s "http://nongli.hdjr.org/"|grep -oP "(?<=\<\/li\>\<li class\='A2'\>).*?(?=\<\/li\>)"|iconv -c -f GBK -t UTF8|head -n 3|tr -d " ")|awk '{print$3}'
戊戌年癸亥月辛酉日
┌─[Sun Nov 25 02:27:53 CST 2018]
└─[root@apaciprtac:/tmp]#
根据百度百科的说法,02:27:53属于丑时(丑时:1点——凌晨2点59分),也就是说八字中第八字的时地支为“丑”字。


同时根据百度百科的说法,时天干要从日天干来推算,因为日天干为辛,所以辛日的丑时应该是“巳丑”,也就是说八字中第七字的时天干为“巳”字。


所以完整的八字应该是:
戊戌年癸亥月辛酉日巳丑时
请问应该如何修改命令从而能够得到完整的八字。
谢谢大家的帮助。



作者: wh7211    时间: 2018-12-12 15:25
回复 3# bikkuri


  1. curl -s "http://nongli.hdjr.org/"|grep -Po "(?<=<li class='A2'>).*?(?=</li>)"|iconv -f GBK -t utf-8|awk 'BEGIN{a=split("甲乙丙丁戊己庚辛壬癸",b,"");c=split("子丑寅卯辰巳午未申酉戌亥",d,"");for(i=1;i<=a;i++){for(j=1;j<=c;j++){k=++k>10?1:k;e[b[i]d[j]]=b[k]d[j]}};for(i=1;i<=12;i++){f[++g<24?g:0]=f[++g]=d[i<12?i+1:1]};h=strftime("%H",systime())}NR<=3{gsub(/ /,"");m[NR]=$0}END{split(m[3],n,"");print m[1]"|"m[3]e[n[7]f[h]]"时|"m[2]}'
  2. 2018年12月12日星期三射手座|戊戌年甲子月戊寅日庚申时|2018年十一月(大)初六属狗
复制代码

作者: bikkuri    时间: 2018-12-13 01:59
回复 4# wh7211

非常感谢您的帮助!
但是我执行了一下,好象时干支并没有显示出来?



作者: bikkuri    时间: 2018-12-13 02:44
回复 4# wh7211

非常感谢您的帮助!
把您的代码中的f[h]改成f[h+0]以后在丑时可以正确显示时干支了。
┌─[Thu Dec 13 02:38:45 CST 2018]
└─[root@apaciprtac:~]# curl -s "http://nongli.hdjr.org/"|grep -Po "(?<=<li class='A2'>).*?(?=</li>)"|iconv -f GBK -t utf-8|awk 'BEGIN{a=split("甲乙丙丁戊己庚辛壬癸",b,"");c=split("子丑寅卯辰巳午未申酉戌亥",d,"");for(i=1;i<=a;i++){for(j=1;j<=c;j++){k=++k>10?1:k;e[bd[j]]=b[k]d[j]}};for(i=1;i<=12;i++){f[++g<24?g:0]=f[++g]=d[i<12?i+1:1]};h=strftime("%H",systime())}NR<=3{gsub(/ /,"");m[NR]=$0}END{split(m[3],n,"");print m[1]"|"m[3]e[n[7]f[h+0]]"时|"m[2]}'
2018年12月13日星期四射手座|戊戌年甲子月己卯日乙丑时|2018年十一月(大)初七属狗


作者: wh7211    时间: 2018-12-13 10:21
本帖最后由 wh7211 于 2018-12-13 15:21 编辑

回复 6# bikkuri


f[h+0]或f[strtonum(h)]
作者: Phyllis666    时间: 2018-12-13 15:19
提示: 作者被禁止或删除 内容自动屏蔽
作者: bikkuri    时间: 2018-12-15 23:48
回复 7# wh7211

谢谢您的指点。
我一般用f[h+0]或者f[h-0]。




作者: bikkuri    时间: 2018-12-15 23:57
回复 8# Phyllis666

谢谢管理大大反删除我之前发的几个帖子。
不知道是怎么回事,最近几次发帖没有一次是痛痛快快地发一次就成功的。
我还反复检查是不是文章里夹带了什么*_*敏*_*感*_*词*_*。。。


作者: Phyllis666    时间: 2018-12-18 09:06
提示: 作者被禁止或删除 内容自动屏蔽
作者: tomac_cu    时间: 2020-12-13 14:33
为什么不能用php这样的更容易操纵的语言呢




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2