# Lunar-Solar-Calendar-Converter **Repository Path**: JerryFox/Lunar-Solar-Calendar-Converter ## Basic Information - **Project Name**: Lunar-Solar-Calendar-Converter - **Description**: 从github导入 - **Primary Language**: HTML - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-08-26 - **Last Updated**: 2024-08-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: 黄历, 农历 ## README # 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)写了一个httpserver,各种语言可以通过下面的http接口验证不同实现的数据一致性。 在javascript目录下node check.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类的比对。比对程序在C\#版本中。 * Swift由于苹果官方有NSCalendarIdentifierChinese,因此有跟Swift官方匹配的generate.swift。实际比对的结果,微软与苹果的数据有部分不一致。比如Apple 2057/9/28->2057年九月〇明显有问题。 ### TODO - 干支 - 星座 ## API For CSharp or Java ``` /** *农历转公历 */ public static Solar LunarToSolar(Lunar lunar) /** *公历转农历 */ public static Lunar SolarToLunar(Solar solar) ``` ## API For Objective-C ``` /** *农历转公历 */ + (Solar *)lunarToSolar:(Lunar *)lunar; /** *公历转农历 */ + (Lunar *)solarToLunar:(Solar *)solar; ``` ## API For php ``` /** *农历转公历 */ public static function LunarToSolar($lunar) /** *公历转农历 */ public static function SolarToLunar($solar) ``` ## API For python ``` //support pypi "pip install LunarSolarConverter" //refer pypiDemo /** *农历转公历 */ def LunarToSolar(self, lunar): /** *公历转农历 */ def SolarToLunar(self, solar): ``` ## API For javascript ``` /** *农历转公历 */ this.LunarToSolar = function (lunar) /** *公历转农历 */ this.SolarToLunar = function (solar) ``` ## API For C/C++ ``` /** *农历转公历 */ Solar LunarToSolar(Lunar lunar); /** *公历转农历 */ Lunar SolarToLunar(Solar solar); ``` ## API For ruby ``` /** *农历转公历 */ def lunar_to_solar(lunar) /** *公历转农历 */ def solar_to_lunar(solar) ``` ## API For swift ``` /** *农历转公历 */ class func LunarToSolar( lunar:Lunar)->Solar /** *公历转农历 */ class func SolarToLunar( solar:Solar)->Lunar ``` ## API For Go ``` /** *农历转公历 */ func LunarToSolar(lunar Lunar) *Solar /** *公历转农历 */ func SolarToLunar(solar Solar) *Lunar ``` ## API For Dart ``` /** *农历转公历 */ static lunarToSolar(Lunar lunar) /** *公历转农历 */ static solarToLunar(Solar solar) ```