链氪巴士
  1. 首页
  2. 站点导航
  3. 文章
  4. 快讯
  5. 软件
  6. 书刊
  7. 关于

Lunar-Solar-Calendar-Converter:支持多语言多平台的公历农历转换工具

Lunar - Solar - Calendar - Converter是一个强大的公历与农历转换工具。它支持1900 - 2100的时间段转换,若需更长时间段可利用generate.htm生成的数据。能在Mac、Windows、Android、WP等平台使用且支持C#, ja...

访问官网 →

Lunar-Solar-Calendar-Converter:公历与农历转换工具

项目简介

Lunar-Solar-Calendar-Converter是一个用于公历(阳历)和农历(阴历)相互转换的工具。它支持1900-2100的时间段转换,若需更长时间段,可利用generate.htm生成的数据。该工具支持多种编程语言,包括C#, java, Objective-C, php, Python, javascript(nodejs), C/C++, ruby, swift, golang等,并且能在Mac,Windows,Android,WP等多种平台上使用。

数据验证

  1. 用io.js(nodejs)写了一个http server,各种语言可以通过下面的http接口验证不同实现的数据一致性。在javascript目录下nodecheck.js启动。
  2. 可通过http://localhost:1337/?src = 2015,1,15(公历转农历,返回2014,11,25,0)或者http://localhost:1337/?src = 2014,11,25,0(农历转公历,返回2015,1,15)进行验证。
  3. 不同语言版本有各自的数据比对方式,如C#版本的Check.cs实现了C#与nodejs的数据比对,基本原理是查表。有2个数据表,对于每一年,一张表存着X年正月初一对应的公历年月日,另一张表存着X年农历每个月的天数以及闰月的月份,然后根据这两张表进行日期的偏移。原始数据通过了微软ChineseLunisolarCalendar类的比对。不过在Swift版本中,由于苹果官方有NSCalendarIdentifierChinese,其generate.swift虽有匹配,但微软与苹果的数据有部分不一致,例如Apple 2057/9/28->2057年九月〇明显有问题。

API介绍

C#

包含农历转公历(public static SolarLunarToSolar(Lunar lunar))和公历转农历(public static LunarSolarToLunar(Solar solar))的API。

Objective-C

有农历转公历(+(Solar)lunarToSolar:(Lunar)lunar;)和公历转农历(+(Lunar)solarToLunar:(Solar)solar;)的API。

php

包含农历转公历(public static function LunarToSolar($lunar))和公历转农历(public static function SolarToLunar($solar))的API。

python

支持pypi安装(”pip install LunarSolarConverter”),包含农历转公历(def LunarToSolar(self, lunar):)和公历转农历(def SolarToLunar(self, solar):)的API。

javascript

有农历转公历(this.LunarToSolar = function(lunar))和公历转农历(this.SolarToLunar = function(solar))的API。

C/C++

包含农历转公历(SolarLunarToSolar(Lunar lunar);)和公历转农历(LunarSolarToLunar(Solar solar);)的API。

ruby

包含农历转公历(def lunar_to_solar(lunar))和公历转农历(def solar_to_lunar(solar))的API。

swift

包含农历转公历(classfunc LunarToSolar(lunar:Lunar)->Solar)和公历转农历(classfunc SolarToLunar(solar:Solar)->Lunar)的API。

Go

包含农历转公历(func LunarToSolar(lunarLunar)Solar)和公历转农历(func SolarToLunar(solarSolar)Lunar)的API。

Dart

包含农历转公历(static lunarToSolar(Lunar lunar))和公历转农历(static solarToLunar(Solar solar))的API。

项目总结

Lunar-Solar-Calendar-Converter是一个功能丰富、跨平台且支持多语言的公历农历转换工具,其数据验证方式和各语言API的提供为开发者在不同环境下使用提供了便利。欢迎大家在评论区留言讨论,分享使用心得或者提出改进建议。

项目地址

GitHub链接直达