1
0
mirror of synced 2026-10-18 20:46:11 +08:00

从Lunar中单独提出八字(EightChar);八字增加胎元、命宫、身宫;八字增加地势(长生十二神)。

This commit is contained in:
6tail
2020-07-28 23:11:35 +08:00
parent 301ed50ded
commit 221d714dca
5 changed files with 791 additions and 52 deletions

View File

@@ -8,7 +8,10 @@ import java.util.List;
/**
* 八字测试
* @author 6tail
* @deprecated 见BaZiTestNew
*/
@Deprecated
public class BaZiTest {
@Test

View File

@@ -0,0 +1,132 @@
package sample;
import com.nlf.calendar.Lunar;
import com.nlf.calendar.Solar;
import org.junit.Test;
import java.util.List;
/**
* 八字测试
* @author 6tail
*/
public class BaZiTestNew {
@Test
public void test1(){
Solar solar = new Solar(2020,1,1,22,35,0);
Lunar lunar = solar.getLunar();
//己亥 丙子 癸卯 癸亥
System.out.println(lunar.getEightChar());
}
@Test
public void test2(){
Solar solar = new Solar(2020,1,6,14,35,0);
Lunar lunar = solar.getLunar();
//己亥, 丁丑, 戊申, 己未]
System.out.println(lunar.getEightChar());
}
@Test
public void test3(){
Solar solar = new Solar(2020,1,6,3,35,0);
Lunar lunar = solar.getLunar();
//己亥, 丁丑, 戊辰, 癸亥]
System.out.println(lunar.getEightChar());
}
@Test
public void test4(){
Solar solar = new Solar(2020,1,26,21,41,0);
Lunar lunar = solar.getLunar();
//己亥, 丙子, 戊申, 甲寅]
System.out.println(lunar.getEightChar());
}
@Test
public void test5(){
Solar solar = new Solar(2020,2,4,1,42,0);
Lunar lunar = solar.getLunar();
//己亥, 丁丑, 丁丑, 辛丑]
System.out.println(lunar.getEightChar());
}
@Test
public void test6(){
Solar solar = new Solar(2020,2,5,21,43,0);
Lunar lunar = solar.getLunar();
//庚子, 戊寅, 戊寅, 癸亥]
System.out.println(lunar.getEightChar());
}
@Test
public void testBazi2Solar6() {
List<Solar> l = Solar.fromBaZi("庚子", "戊寅", "戊寅", "癸亥");
// [2020-02-05 22:00:00, 1960-02-20 22:00:00]
for (Solar solar : l) {
System.out.println(solar.toFullString());
}
}
@Test
public void test7(){
Solar solar = new Solar(2020,5,26,23,43,0);
Lunar lunar = solar.getLunar();
//庚子, 辛巳, 庚午, 丙子]
System.out.println(lunar.getEightChar());
}
@Test
public void testBazi2Solar7() {
List<Solar> l = Solar.fromBaZi("庚子", "辛巳", "庚午", "丙子");
// [2020-05-26 23:00:00, 2020-05-27 00:00:00]
for (Solar solar : l) {
System.out.println(solar.toFullString());
}
}
@Test
public void testBazi2Solar() {
List<Solar> l = Solar.fromBaZi("庚子", "癸未", "乙丑", "丁亥");
// [2020-07-21 22:00:00, 1960-08-05 22:00:00]
for (Solar solar : l) {
System.out.println(solar.toFullString());
}
}
@Test
public void testBazi2Solar2() {
List<Solar> l = Solar.fromBaZi("庚子", "戊子", "己卯", "庚午");
// [1960-12-17 12:00:00, 1901-01-01 12:00:00]
for (Solar solar : l) {
System.out.println(solar.toFullString());
}
}
@Test
public void testBaziShiShenZhi() {
Solar solar = new Solar(2020,1,1,22,35,0);
Lunar lunar = solar.getLunar();
//己亥 丙子 癸卯 癸亥
System.out.println(lunar.getEightChar());
//七杀
System.out.println(lunar.getEightChar().getYearShiShenGan());
//正财
System.out.println(lunar.getEightChar().getMonthShiShenGan());
//日主
System.out.println(lunar.getEightChar().getDayShiShenGan());
//比肩
System.out.println(lunar.getEightChar().getTimeShiShenGan());
//[劫财, 伤官]
System.out.println(lunar.getEightChar().getYearShiShenZhi());
//[比肩]
System.out.println(lunar.getEightChar().getMonthShiShenZhi());
//[食神]
System.out.println(lunar.getEightChar().getDayShiShenZhi());
//[劫财, 伤官]
System.out.println(lunar.getEightChar().getTimeShiShenZhi());
}
}

View File

@@ -0,0 +1,108 @@
package test;
import com.nlf.calendar.EightChar;
import com.nlf.calendar.Lunar;
import com.nlf.calendar.Solar;
import org.junit.Assert;
import org.junit.Test;
/**
* 八字测试
*/
public class BaZiTest {
@Test
public void testGanZhi() {
Solar solar = new Solar(2005, 12, 23, 8, 37, 0);
Lunar lunar = solar.getLunar();
EightChar eightChar = lunar.getEightChar();
Assert.assertEquals("年柱", "乙酉", eightChar.getYear());
Assert.assertEquals("月柱", "戊子", eightChar.getMonth());
Assert.assertEquals("日柱", "辛巳", eightChar.getDay());
Assert.assertEquals("时柱", "壬辰", eightChar.getTime());
}
@Test
public void testHideGan() {
Solar solar = new Solar(2005, 12, 23, 8, 37, 0);
Lunar lunar = solar.getLunar();
EightChar eightChar = lunar.getEightChar();
Assert.assertEquals("年支藏干", "[辛]", eightChar.getYearHideGan().toString());
Assert.assertEquals("月支藏干", "[癸]", eightChar.getMonthHideGan().toString());
Assert.assertEquals("日支藏干", "[丙, 庚, 戊]", eightChar.getDayHideGan().toString());
Assert.assertEquals("时支藏干", "[戊, 乙, 癸]", eightChar.getTimeHideGan().toString());
}
@Test
public void testShiShenGan() {
Solar solar = new Solar(2005, 12, 23, 8, 37, 0);
Lunar lunar = solar.getLunar();
EightChar eightChar = lunar.getEightChar();
Assert.assertEquals("年干十神", "偏财", eightChar.getYearShiShenGan());
Assert.assertEquals("月干十神", "正印", eightChar.getMonthShiShenGan());
Assert.assertEquals("日干十神", "日主", eightChar.getDayShiShenGan());
Assert.assertEquals("时干十神", "伤官", eightChar.getTimeShiShenGan());
}
@Test
public void testShiShenZhi() {
Solar solar = new Solar(2005, 12, 23, 8, 37, 0);
Lunar lunar = solar.getLunar();
EightChar eightChar = lunar.getEightChar();
Assert.assertEquals("年支十神", "[比肩]", eightChar.getYearShiShenZhi().toString());
Assert.assertEquals("月支十神", "[食神]", eightChar.getMonthShiShenZhi().toString());
Assert.assertEquals("日支十神", "[正官, 劫财, 正印]", eightChar.getDayShiShenZhi().toString());
Assert.assertEquals("时支十神", "[正印, 偏财, 食神]", eightChar.getTimeShiShenZhi().toString());
}
@Test
public void testDiShi() {
Solar solar = new Solar(2005, 12, 23, 8, 37, 0);
Lunar lunar = solar.getLunar();
EightChar eightChar = lunar.getEightChar();
Assert.assertEquals("年柱地势", "临官", eightChar.getYearDiShi());
Assert.assertEquals("月柱地势", "长生", eightChar.getMonthDiShi());
Assert.assertEquals("日柱地势", "死", eightChar.getDayDiShi());
Assert.assertEquals("时柱地势", "墓", eightChar.getTimeDiShi());
}
@Test
public void testNaYin() {
Solar solar = new Solar(2005, 12, 23, 8, 37, 0);
Lunar lunar = solar.getLunar();
EightChar eightChar = lunar.getEightChar();
Assert.assertEquals("年柱纳音", "泉中水", eightChar.getYearNaYin());
Assert.assertEquals("月柱纳音", "霹雳火", eightChar.getMonthNaYin());
Assert.assertEquals("日柱纳音", "白蜡金", eightChar.getDayNaYin());
Assert.assertEquals("时柱纳音", "长流水", eightChar.getTimeNaYin());
}
@Test
public void testTaiYuan() {
Solar solar = new Solar(2005, 12, 23, 8, 37, 0);
Lunar lunar = solar.getLunar();
Assert.assertEquals("胎元", "己卯", lunar.getEightChar().getTaiYuan());
lunar = new Solar(1995, 12, 18, 10, 28, 0).getLunar();
Assert.assertEquals("胎元", "己卯", lunar.getEightChar().getTaiYuan());
}
@Test
public void testMingGong() {
Lunar lunar = new Solar(2005, 12, 23, 8, 37, 0).getLunar();
Assert.assertEquals("命宫", "己丑", lunar.getEightChar().getMingGong());
lunar = new Solar(1998, 6, 11, 4, 28, 0).getLunar();
Assert.assertEquals("命宫", "辛酉", lunar.getEightChar().getMingGong());
lunar = new Solar(1995, 12, 18, 10, 28, 0).getLunar();
Assert.assertEquals("命宫", "戊子", lunar.getEightChar().getMingGong());
}
@Test
public void testShenGong() {
Lunar lunar = new Solar(1995, 12, 18, 10, 28, 0).getLunar();
Assert.assertEquals("身宫", "壬午", lunar.getEightChar().getShenGong());
}
}