公歷(陽歷)農歷(陰歷)轉換,支持時間段從1900-2100

jopen 9年前發布 | 44K 次閱讀 日期

公歷(陽歷)農歷(陰歷)轉換,支持時間段從1900-2100
支持各種編程語言 C#,java,Objective-C,php,Python,javascript(nodejs),C/C++,ruby等
支持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)

基本原理

  • 查表。有2個數據表,對于每一年,一張表存著X年正月初一對應的公歷年月日,另一張表存著X年農歷每個月的天數以及閏月的月份。然后根據這兩張表進行日期的偏移。

  • 所有數據通過了微軟ChineseLunisolarCalendar類的比對。比對程序在C#版本中。

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

/**
*農歷轉公歷
*/
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 LunarToSolar(lunar)

/**
*公歷轉農歷
*/
def SolarToLunar(solar)

項目主頁:http://www.baiduhome.net/lib/view/home/1421399297046

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!