1
0
mirror of synced 2025-12-27 07:48:00 +08:00

修复干支纪年和纪月的严重错误;节气支持到秒。

This commit is contained in:
6tail
2020-04-19 22:55:41 +08:00
parent bd6deaf3ec
commit 19ac8dd54a
10 changed files with 943 additions and 190 deletions

View File

@@ -0,0 +1,61 @@
package sample;
import com.nlf.calendar.Lunar;
import com.nlf.calendar.Solar;
import org.junit.Assert;
import org.junit.Test;
/**
* 八字测试
*/
public class BaZiTest {
@Test
public void test1(){
Solar solar = new Solar(2020,1,1,22,35,0);
Lunar lunar = solar.getLunar();
//[己亥, 丙子, 癸卯, 癸亥]
System.out.println(lunar.getBaZi());
}
@Test
public void test2(){
Solar solar = new Solar(2020,1,6,14,35,0);
Lunar lunar = solar.getLunar();
//[己亥, 丁丑, 戊申, 己未]
System.out.println(lunar.getBaZi());
}
@Test
public void test3(){
Solar solar = new Solar(2020,1,6,3,35,0);
Lunar lunar = solar.getLunar();
//[己亥, 丁丑, 戊辰, 癸亥]
System.out.println(lunar.getBaZi());
}
@Test
public void test4(){
Solar solar = new Solar(2020,1,26,21,41,0);
Lunar lunar = solar.getLunar();
//[己亥, 丙子, 戊申, 甲寅]
System.out.println(lunar.getBaZi());
}
@Test
public void test5(){
Solar solar = new Solar(2020,2,4,1,42,0);
Lunar lunar = solar.getLunar();
//[己亥, 丁丑, 丁丑, 辛丑]
System.out.println(lunar.getBaZi());
}
@Test
public void test6(){
Solar solar = new Solar(2020,2,5,21,43,0);
Lunar lunar = solar.getLunar();
//[庚子, 戊寅, 戊寅, 癸亥]
System.out.println(lunar.getBaZi());
}
}

View File

@@ -0,0 +1,199 @@
package test;
import com.nlf.calendar.Lunar;
import com.nlf.calendar.Solar;
import org.junit.Assert;
import org.junit.Test;
/**
* 干支测试
*/
public class GanZhiTest {
@Test
public void test(){
Solar solar = new Solar(2020,1,1,13,22,0);
Lunar lunar = solar.getLunar();
Assert.assertEquals("己亥",lunar.getYearInGanZhi());
Assert.assertEquals("己亥",lunar.getYearInGanZhiByLiChun());
Assert.assertEquals("己亥",lunar.getYearInGanZhiExact());
Assert.assertEquals("丙子",lunar.getMonthInGanZhi());
Assert.assertEquals("丙子",lunar.getMonthInGanZhiExact());
//小寒
solar = new Solar(2020,1,6,13,22,0);
lunar = solar.getLunar();
Assert.assertEquals("己亥",lunar.getYearInGanZhi());
Assert.assertEquals("己亥",lunar.getYearInGanZhiByLiChun());
Assert.assertEquals("己亥",lunar.getYearInGanZhiExact());
Assert.assertEquals("丁丑",lunar.getMonthInGanZhi());
Assert.assertEquals("丁丑",lunar.getMonthInGanZhiExact());
solar = new Solar(2020,1,20,13,22,0);
lunar = solar.getLunar();
Assert.assertEquals("己亥",lunar.getYearInGanZhi());
Assert.assertEquals("己亥",lunar.getYearInGanZhiByLiChun());
Assert.assertEquals("己亥",lunar.getYearInGanZhiExact());
Assert.assertEquals("丁丑",lunar.getMonthInGanZhi());
Assert.assertEquals("丁丑",lunar.getMonthInGanZhiExact());
//春节
solar = new Solar(2020,1,25,13,22,0);
lunar = solar.getLunar();
Assert.assertEquals("庚子",lunar.getYearInGanZhi());
Assert.assertEquals("己亥",lunar.getYearInGanZhiByLiChun());
Assert.assertEquals("己亥",lunar.getYearInGanZhiExact());
Assert.assertEquals("丁丑",lunar.getMonthInGanZhi());
Assert.assertEquals("丁丑",lunar.getMonthInGanZhiExact());
solar = new Solar(2020,1,30,13,22,0);
lunar = solar.getLunar();
Assert.assertEquals("庚子",lunar.getYearInGanZhi());
Assert.assertEquals("己亥",lunar.getYearInGanZhiByLiChun());
Assert.assertEquals("己亥",lunar.getYearInGanZhiExact());
Assert.assertEquals("丁丑",lunar.getMonthInGanZhi());
Assert.assertEquals("丁丑",lunar.getMonthInGanZhiExact());
solar = new Solar(2020,2,1,13,22,0);
lunar = solar.getLunar();
Assert.assertEquals("庚子",lunar.getYearInGanZhi());
Assert.assertEquals("己亥",lunar.getYearInGanZhiByLiChun());
Assert.assertEquals("己亥",lunar.getYearInGanZhiExact());
Assert.assertEquals("丁丑",lunar.getMonthInGanZhi());
Assert.assertEquals("丁丑",lunar.getMonthInGanZhiExact());
solar = new Solar(2020,2,4,13,22,0);
lunar = solar.getLunar();
Assert.assertEquals("庚子",lunar.getYearInGanZhi());
Assert.assertEquals("庚子",lunar.getYearInGanZhiByLiChun());
Assert.assertEquals("己亥",lunar.getYearInGanZhiExact());
Assert.assertEquals("戊寅",lunar.getMonthInGanZhi());
Assert.assertEquals("丁丑",lunar.getMonthInGanZhiExact());
solar = new Solar(2020,2,4,18,22,0);
lunar = solar.getLunar();
Assert.assertEquals("庚子",lunar.getYearInGanZhi());
Assert.assertEquals("庚子",lunar.getYearInGanZhiByLiChun());
Assert.assertEquals("庚子",lunar.getYearInGanZhiExact());
Assert.assertEquals("戊寅",lunar.getMonthInGanZhi());
Assert.assertEquals("戊寅",lunar.getMonthInGanZhiExact());
solar = new Solar(2020,2,5,13,22,0);
lunar = solar.getLunar();
Assert.assertEquals("庚子",lunar.getYearInGanZhi());
Assert.assertEquals("庚子",lunar.getYearInGanZhiByLiChun());
Assert.assertEquals("庚子",lunar.getYearInGanZhiExact());
Assert.assertEquals("戊寅",lunar.getMonthInGanZhi());
Assert.assertEquals("戊寅",lunar.getMonthInGanZhiExact());
solar = new Solar(2020,5,22,13,22,0);
lunar = solar.getLunar();
Assert.assertEquals("庚子",lunar.getYearInGanZhi());
Assert.assertEquals("庚子",lunar.getYearInGanZhiByLiChun());
Assert.assertEquals("庚子",lunar.getYearInGanZhiExact());
Assert.assertEquals("辛巳",lunar.getMonthInGanZhi());
Assert.assertEquals("辛巳",lunar.getMonthInGanZhiExact());
solar = new Solar(2020,5,23,13,22,0);
lunar = solar.getLunar();
Assert.assertEquals("庚子",lunar.getYearInGanZhi());
Assert.assertEquals("庚子",lunar.getYearInGanZhiByLiChun());
Assert.assertEquals("庚子",lunar.getYearInGanZhiExact());
Assert.assertEquals("辛巳",lunar.getMonthInGanZhi());
Assert.assertEquals("辛巳",lunar.getMonthInGanZhiExact());
solar = new Solar(2020,5,29,13,22,0);
lunar = solar.getLunar();
Assert.assertEquals("庚子",lunar.getYearInGanZhi());
Assert.assertEquals("庚子",lunar.getYearInGanZhiByLiChun());
Assert.assertEquals("庚子",lunar.getYearInGanZhiExact());
Assert.assertEquals("辛巳",lunar.getMonthInGanZhi());
Assert.assertEquals("辛巳",lunar.getMonthInGanZhiExact());
solar = new Solar(2020,6,1,13,22,0);
lunar = solar.getLunar();
Assert.assertEquals("庚子",lunar.getYearInGanZhi());
Assert.assertEquals("庚子",lunar.getYearInGanZhiByLiChun());
Assert.assertEquals("庚子",lunar.getYearInGanZhiExact());
Assert.assertEquals("辛巳",lunar.getMonthInGanZhi());
Assert.assertEquals("辛巳",lunar.getMonthInGanZhiExact());
solar = new Solar(2020,6,29,13,22,0);
lunar = solar.getLunar();
Assert.assertEquals("庚子",lunar.getYearInGanZhi());
Assert.assertEquals("庚子",lunar.getYearInGanZhiByLiChun());
Assert.assertEquals("庚子",lunar.getYearInGanZhiExact());
Assert.assertEquals("壬午",lunar.getMonthInGanZhi());
Assert.assertEquals("壬午",lunar.getMonthInGanZhiExact());
solar = new Solar(2019,5,1,13,22,0);
lunar = solar.getLunar();
Assert.assertEquals("己亥",lunar.getYearInGanZhi());
Assert.assertEquals("己亥",lunar.getYearInGanZhiByLiChun());
Assert.assertEquals("己亥",lunar.getYearInGanZhiExact());
Assert.assertEquals("戊辰",lunar.getMonthInGanZhi());
Assert.assertEquals("戊辰",lunar.getMonthInGanZhiExact());
solar = new Solar(1986,5,29,13,22,0);
lunar = solar.getLunar();
Assert.assertEquals("丙寅",lunar.getYearInGanZhi());
Assert.assertEquals("丙寅",lunar.getYearInGanZhiByLiChun());
Assert.assertEquals("丙寅",lunar.getYearInGanZhiExact());
Assert.assertEquals("癸巳",lunar.getMonthInGanZhi());
Assert.assertEquals("癸巳",lunar.getMonthInGanZhiExact());
solar = new Solar(1986,5,1,1,22,0);
lunar = solar.getLunar();
Assert.assertEquals("丙寅",lunar.getYearInGanZhi());
Assert.assertEquals("丙寅",lunar.getYearInGanZhiByLiChun());
Assert.assertEquals("丙寅",lunar.getYearInGanZhiExact());
Assert.assertEquals("壬辰",lunar.getMonthInGanZhi());
Assert.assertEquals("壬辰",lunar.getMonthInGanZhiExact());
solar = new Solar(1986,5,6,1,22,0);
lunar = solar.getLunar();
Assert.assertEquals("丙寅",lunar.getYearInGanZhi());
Assert.assertEquals("丙寅",lunar.getYearInGanZhiByLiChun());
Assert.assertEquals("丙寅",lunar.getYearInGanZhiExact());
Assert.assertEquals("癸巳",lunar.getMonthInGanZhi());
Assert.assertEquals("壬辰",lunar.getMonthInGanZhiExact());
solar = new Solar(1986,5,6,23,22,0);
lunar = solar.getLunar();
Assert.assertEquals("丙寅",lunar.getYearInGanZhi());
Assert.assertEquals("丙寅",lunar.getYearInGanZhiByLiChun());
Assert.assertEquals("丙寅",lunar.getYearInGanZhiExact());
Assert.assertEquals("癸巳",lunar.getMonthInGanZhi());
Assert.assertEquals("癸巳",lunar.getMonthInGanZhiExact());
}
}

View File

@@ -13,11 +13,11 @@ public class LunarTest {
@Test
public void test(){
Lunar date = new Lunar(2019,3,27);
Lunar date = new Lunar(2019,3,27,0,0,0);
Assert.assertEquals("贰零壹玖年叁月廿七",date.toString());
Assert.assertEquals("贰零壹玖年叁月廿七 己亥(猪)年 戊辰(龙)月 戊戌(狗)日 子(鼠)时 纳音[平地木 大林木 平地木 海中金] 星期三 (七殿泰山王诞) 西方白虎 星宿[参水猿](吉) 彭祖百忌[戊不受田田主不祥 戌不吃犬作怪上床] 喜神方位[巽](东南) 阳贵神方位[艮](东北) 阴贵神方位[坤](西南) 福神方位[坎](正北) 财神方位[坎](正北) 冲[(壬辰)龙] 煞[北]",date.toFullString());
Assert.assertEquals("2019-05-01",date.getSolar().toString());
Assert.assertEquals("2019-05-01 00:00 星期三 (劳动节) 金牛座",date.getSolar().toFullString());
Assert.assertEquals("2019-05-01 00:00:00 星期三 (劳动节) 金牛座",date.getSolar().toFullString());
}
}

View File

@@ -15,7 +15,7 @@ public class SolarTest {
public void test(){
Solar date = new Solar(2019,5,1);
Assert.assertEquals("2019-05-01",date.toString());
Assert.assertEquals("2019-05-01 00:00 星期三 (劳动节) 金牛座",date.toFullString());
Assert.assertEquals("2019-05-01 00:00:00 星期三 (劳动节) 金牛座",date.toFullString());
Assert.assertEquals("贰零壹玖年叁月廿七",date.getLunar().toString());
Assert.assertEquals("贰零壹玖年叁月廿七 己亥(猪)年 戊辰(龙)月 戊戌(狗)日 子(鼠)时 纳音[平地木 大林木 平地木 海中金] 星期三 (七殿泰山王诞) 西方白虎 星宿[参水猿](吉) 彭祖百忌[戊不受田田主不祥 戌不吃犬作怪上床] 喜神方位[巽](东南) 阳贵神方位[艮](东北) 阴贵神方位[坤](西南) 福神方位[坎](正北) 财神方位[坎](正北) 冲[(壬辰)龙] 煞[北]",date.getLunar().toFullString());
}

View File

@@ -211,7 +211,7 @@ public class TimeTest {
hour = Integer.parseInt(hm.substring(0,2),10);
minute = Integer.parseInt(hm.substring(3,5),10);
}
Lunar lunar = Lunar.fromYmdHm(2020,1,1,hour,minute);
Lunar lunar = Lunar.fromYmdHms(2020,1,1,hour,minute,0);
String ganZhi = entry.getValue();
Assert.assertEquals(hm, ganZhi, lunar.getTimeInGanZhi());
}
@@ -225,7 +225,7 @@ public class TimeTest {
hour = Integer.parseInt(hm.substring(0,2),10);
minute = Integer.parseInt(hm.substring(3,5),10);
}
Lunar lunar = Lunar.fromYmdHm(2020,1,1,hour,minute);
Lunar lunar = Lunar.fromYmdHms(2020,1,1,hour,minute,0);
String gan = entry.getValue();
Assert.assertEquals(hm, gan, lunar.getTimeGan());
}