TGDZcalc by coffeescript (44th)
关于coffeescript
安装之前,要先安装一个node.js.
安装coffeescript: npm install -g coffeescript
卸载: npm uninstall -g coffeescript
今日之最新版: 2.7.0
语法像python,用缩进表示层次, 语法上也争取像Python,具有切片,范围,推导式,字符串插值#{变量名}等特点,比js优雅. 注释也是前面加 #.
对中文字串的支持也很完美.
它是翻译成javascript来运行的.翻译之后再解释执行.
直接运行coffee脚本:coffee aaa.coffee
coffee脚本翻译成js文件: coffee -c aaa.coffee
js文件直接执行 node aaa.js
一个有意思的小语言.
点击查看coffeescript代码
#coffee script 会编译到javascript使用.
#采用缩进表达层次,类似Python的精简,切片/范围都好用,可用JS的库,中文支持好,有意思
#函数
CalcBaseYear=(y) ->
b=0
if y>0
b=4
else
b=-57
while b>y
b -=60
while b+60<=y
b +=60
return b
#函数
YearToTGDZ=(y)->
tgArr=["甲","乙","丙","丁","戊","已","庚","辛","壬","癸"]
dzArr=["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"]
if y==0
return ""
tmpY=y
if tmpY>0
tmpY -=4
else
tmpY -=3
while tmpY<0
tmpY +=60
ti=tmpY % 10
di=tmpY % 12
tg=tgArr[ti]
dz=dzArr[di]
return "#{tg}#{dz}"
#函数
TGDZtoYear=(tgdz,baseyear)->
if tgdz.length==0
return 0
tg=tgdz.substr(0,1)
dz=tgdz.substr(1,2)
strTG="甲乙丙丁戊已庚辛壬癸";
strDZ="子丑寅卯辰巳午未申酉戌亥";
ti=strTG.indexOf(tg)
di=strDZ.indexOf(dz)
m=0
if ti>=di
m=ti-di
else
m=12+ti-di
return baseyear+m*5+ti
#函数
Test=(x)->
baseYear=CalcBaseYear(x)
tgdz=YearToTGDZ(x)
x2=TGDZtoYear(tgdz,baseYear)
console.log "年份:#{x}, 干支记年:#{tgdz}, 甲子年:#{baseYear},复算为: #{x2}\n" #会自动换行,亦可不加\n.
#调用
years=[-361,1900,1924,1937,1976,2026]
Test(y) for y in years
当然,无图无真相,也少不了运行结果展示.


浙公网安备 33010602011771号