2009年6月7日星期日

公历农历互转的Ruby实现

网上只能找到公历转换到农历的程序,反过来的Ruby实现似乎没有,所以就自己写了个,取名rbCCal。程序采用查表法,大约能实现公元1900年至2100年间200年的公历和农历互转。

数据部分出自Zhuo Meng的CCAL,该程序用GPL发布,所以rbCCal也用GPL发布。

代码放在Github。其实觉得Google Code会更靠谱些,个人用SVN和Git也不会有太大区别。可这个站是Ruby写的,而且还很漂亮。

另,因为Github只支持ASCII和UTF-8,为了能在网站上显示中文,我只好将代码存成了UTF-8,这样在Windows里直接用就会有问题。需要的话请将代码保存为GBK,或者重载LunarDate类。

下载请往这边走:https://github.com/oTnTh/ccal

require 'ccal'

l = Time.now.to_lunar()
puts l.lyear, l.lmonth, l.lday
puts Time.from_lunar(l.lyear, l.lmonth, l.lday)

l = Date.new(2009, 6, 4).to_lunar()
puts l.to_s()
puts Date.from_lunar(l.lyear, l.lmonth, l.lday)

没有评论 :