1
0
mirror of synced 2025-12-27 15:57:59 +08:00

优化儒略日计算;使用最新寿星天文历算法修复节气误差。

This commit is contained in:
6tail
2020-07-15 16:54:56 +08:00
parent fd2954f5e0
commit 710058d62e
4 changed files with 365 additions and 222 deletions

View File

@@ -0,0 +1,98 @@
package test;
import com.nlf.calendar.Solar;
import org.junit.Assert;
import org.junit.Test;
import java.util.HashMap;
import java.util.Map;
/**
* 节气测试
*
* @author 6tail
*/
public class JiQiTest {
@Test
public void test2022() {
Map<String,String> jieQi = new HashMap<String, String>(){
private static final long serialVersionUID = 1L;
{
put("冬至","2021-12-21 23:59:09");
put("小寒","2022-01-05 17:13:54");
put("大寒","2022-01-20 10:38:56");
put("立春","2022-02-04 04:50:36");
put("雨水","2022-02-19 00:42:50");
put("惊蛰","2022-03-05 22:43:34");
put("春分","2022-03-20 23:33:15");
put("清明","2022-04-05 03:20:03");
put("谷雨","2022-04-20 10:24:07");
put("立夏","2022-05-05 20:25:46");
put("小满","2022-05-21 09:22:25");
put("芒种","2022-06-06 00:25:37");
put("夏至","2022-06-21 17:13:40");
put("小暑","2022-07-07 10:37:49");
put("大暑","2022-07-23 04:06:49");
put("立秋","2022-08-07 20:28:57");
put("处暑","2022-08-23 11:15:59");
put("白露","2022-09-07 23:32:07");
put("秋分","2022-09-23 09:03:31");
put("寒露","2022-10-08 15:22:16");
put("霜降","2022-10-23 18:35:31");
put("立冬","2022-11-07 18:45:18");
put("小雪","2022-11-22 16:20:18");
put("大雪","2022-12-07 11:46:04");
}
};
Solar solar = Solar.fromYmd(2022, 7, 15);
Map<String,Solar> result = solar.getLunar().getJieQiTable();
for(Map.Entry<String,String> entry:jieQi.entrySet()){
String name = entry.getKey();
Assert.assertEquals(name, entry.getValue(), result.get(name).toYmdHms());
}
}
@Test
public void test1986() {
Map<String,String> jieQi = new HashMap<String, String>(){
private static final long serialVersionUID = 1L;
{
put("冬至","1985-12-22 06:07:40");
put("小寒","1986-01-05 23:28:02");
put("大寒","1986-01-20 16:46:12");
put("立春","1986-02-04 11:07:42");
put("雨水","1986-02-19 06:57:31");
put("惊蛰","1986-03-06 05:12:08");
put("春分","1986-03-21 06:02:41");
put("清明","1986-04-05 10:06:07");
put("谷雨","1986-04-20 17:12:08");
put("立夏","1986-05-06 03:30:36");
put("小满","1986-05-21 16:27:55");
put("芒种","1986-06-06 07:44:23");
put("夏至","1986-06-22 00:29:57");
put("小暑","1986-07-07 18:00:45");
put("大暑","1986-07-23 11:24:23");
put("立秋","1986-08-08 03:45:36");
put("处暑","1986-08-23 18:25:47");
put("白露","1986-09-08 06:34:37");
put("秋分","1986-09-23 15:58:52");
put("寒露","1986-10-08 22:06:45");
put("霜降","1986-10-24 01:14:11");
put("立冬","1986-11-08 01:12:49");
put("小雪","1986-11-22 22:44:20");
put("大雪","1986-12-07 18:00:56");
}
};
Solar solar = Solar.fromYmd(1986, 7, 15);
Map<String,Solar> result = solar.getLunar().getJieQiTable();
for(Map.Entry<String,String> entry:jieQi.entrySet()){
String name = entry.getKey();
Assert.assertEquals(name, entry.getValue(), result.get(name).toYmdHms());
}
}
}

View File

@@ -0,0 +1,25 @@
package test;
import com.nlf.calendar.Solar;
import org.junit.Assert;
import org.junit.Test;
/**
* 儒略日测试
*
* @author 6tail
*/
public class JulianDayTest {
@Test
public void testSolar2JD() {
Solar solar = Solar.fromYmd(2020, 7, 15);
Assert.assertEquals(2459045.5, solar.getJulianDay(), 0);
}
@Test
public void testJD2Solar() {
Solar solar = Solar.fromJulianDay(2459045.5);
Assert.assertEquals("2020-07-15 00:00:00", solar.toYmdHms());
}
}