Wiki
Clone wikiLunarUtil / Home
Java農曆公曆轉換
早前需要在Java上用到農曆公曆互相轉換,但在網上找了好些別人寫的library,要不就是只能做到公曆轉農曆,要不就是會計錯了農曆閏月部份。 最後找了幾個可用的library綜合一下並fix了一些閏月日子轉換錯誤之類的bug,去做到正確計算農曆公曆互相轉換。
Project pages
Features
-
農曆轉公曆 支援輸入日期範圍 Min: 農曆一九零零(庚子)年一月初一 Max: 農曆二零九九(己未)年十二月三十日
-
公曆轉農曆 支援輸入日期範圍 Min: 1900年1月31日 Max: 2099年12月31日
Requirement
Java 8+
Examples:
-
農曆轉公曆
#!java public static void main(String[] args) { // 農曆轉公曆 System.out.println("---------------------"); System.out.println("農曆轉公曆:"); System.out.println("---------------------"); { Solar solar = LunarUtil.lunar2Solar(1990, 5, 1, true).get(); System.out.println("Example 1: 農曆1990年閏五月初一轉公曆"); System.out.println(solar.toString()); System.out.println("年: " + solar.getYear() + ", 月: " + solar.getMonth() + ", 日: " + solar.getDay()); System.out.println(); } { Solar solar = LunarUtil.lunar2Solar(2033, 11, 1, true).get(); System.out.println("Example 2: 農曆2033年閏十一月初一轉公曆"); System.out.println(solar.toString()); System.out.println("年: " + solar.getYear() + ", 月: " + solar.getMonth() + ", 日: " + solar.getDay()); System.out.println(); } }
-
公曆轉農曆
#!java public static void main(String[] args) { // 公曆轉農曆 System.out.println("---------------------"); System.out.println("公曆轉農曆:"); System.out.println("---------------------"); { System.out.println("Example 1: 公曆1990年6月23日轉農曆"); Lunar lunar = LunarUtil.solar2Lunar(1990, 6, 23).get(); System.out.println(lunar.toString()); System.out.println("年: " + lunar.getYear() + ", 月: " + lunar.getMonth() + ", 日: " + lunar.getDay() + ", 閏月: " + (lunar.isLeap() ? "是" : "否")); System.out.println(); } { System.out.println("Example 2: 公曆2033年12月22日轉農曆"); Lunar lunar = LunarUtil.solar2Lunar(2033, 12, 22).get(); System.out.println(lunar.toString()); System.out.println("年: " + lunar.getYear() + ", 月: " + lunar.getMonth() + ", 日: " + lunar.getDay() + ", 閏月: " + (lunar.isLeap() ? "是" : "否")); System.out.println("閏月: " + (lunar.isLeap() ? "是" : "否")); System.out.println(); } }
Dependency
- Jodatime 2.x.x。
Contact
如有任何問題,歡迎email到 airic.yu@gmail.com。
Updated