예제 #1
0
        public void 建除日Test()
        {
            LnDate  date    = new LnDate(2017, 2, 1);
            GanZhi  yue     = new GanZhi(date.MonthGZ);
            GanZhi  ri      = new GanZhi(date.DayGZ);
            JianChu jianchu = JianChu.Get(yue.Zhi, ri.Zhi);

            Assert.AreEqual("破日", jianchu.Name);

            date    = new LnDate(2017, 2, 2);
            yue     = new GanZhi(date.MonthGZ);
            ri      = new GanZhi(date.DayGZ);
            jianchu = JianChu.Get(yue.Zhi, ri.Zhi);
            Assert.AreEqual("危日", jianchu.Name);

            date = new LnDate(2017, 2, 8);
            HuangLi hl = LnBase.黄历日(date);

            Assert.AreEqual("建日", hl.建除.Name);

            date = new LnDate(2017, 2, 9);
            hl   = LnBase.黄历日(date);
            Assert.AreEqual("除日", hl.建除.Name);
            Assert.AreEqual(LnBase.忌日.杨公十三忌 | LnBase.忌日.岁破, hl.忌日);

            LnBase.忌日 jiri = LnBase.忌日.朔 | LnBase.忌日.月破;
            Assert.AreNotEqual(LnBase.忌日.百无禁忌, jiri & LnBase.忌日.朔);
            Assert.AreNotEqual(LnBase.忌日.百无禁忌, jiri & LnBase.忌日.月破);
            Assert.AreEqual(LnBase.忌日.百无禁忌, jiri & LnBase.忌日.杨公十三忌);
        }
예제 #2
0
        public void 查八字Test()
        {
            DateTime res = LnBase.查找八字("戊午", "戊午", "甲子", 2017, 方向.逆行);

            Assert.AreEqual(new DateTime(1978, 7, 1), res);

            res = LnBase.查找八字("丁酉", "壬寅", "壬戌", 2016, 方向.顺行);
            Assert.AreEqual(new DateTime(2017, 2, 4), res);

            res = LnBase.查找八字("丙申", "辛丑", "辛酉", 2016, 方向.顺行);
            Assert.AreEqual(new DateTime(2017, 2, 3), res);

            res = LnBase.查找八字("丁亥", "庚戌", "己巳", 1930, 方向.逆行);
            Assert.AreEqual(new DateTime(1887, 10, 31), res);

            res = LnBase.查找农历(1978, "五", "廿六", false);
            Assert.AreEqual(new DateTime(1978, 7, 1), res);

            try
            {
                res = LnBase.查找农历(1978, "五", "廿六", true);
                Assert.IsTrue(false, "应该找不到");
            }
            catch (Exception)
            {
            }

            res = LnBase.查找农历(2017, "六", "初一", true);
            Assert.AreEqual(new DateTime(2017, 7, 23), res);
        }
예제 #3
0
        public void 起大运时间Test()
        {
            DateTime day = LnBase.起运时间(new DateTime(1978, 7, 1, 6, 45, 0), 方向.顺行);

            Assert.AreEqual(1980, day.Year);
            Assert.AreEqual(9, day.Month);
            Assert.AreEqual(3, day.Day);

            day = LnBase.起运时间(new DateTime(1978, 7, 1, 6, 45, 0), 方向.逆行);
            Assert.AreEqual(1986, day.Year);
            Assert.AreEqual(10, day.Month);
            Assert.AreEqual(15, day.Day);
        }
예제 #4
0
        public void 查节气()
        {
            LnDate day = LnBase.查找节气(2017, 2);

            Assert.AreEqual(4, day.Day);

            day = LnBase.查找节气(2017, 3);
            Assert.AreEqual(5, day.Day);

            day = LnBase.查找节气(2017, 10);
            Assert.AreEqual(8, day.Day);

            day = LnBase.查找节气(2016, 13);
            Assert.AreEqual(5, day.Day);
            Assert.AreEqual(2017, day.Year);
            Assert.AreEqual(1, day.Month);

            day = LnBase.查找节气(2017, 0);
            Assert.AreEqual(7, day.Day);
            Assert.AreEqual(2016, day.Year);
            Assert.AreEqual(12, day.Month);

            TimeSpan ts = LnBase.计算节气时间差(new DateTime(2017, 2, 4, 5, 0, 0), 方向.逆行);

            Assert.AreNotEqual(TimeSpan.Zero, ts);
            Assert.AreEqual(-5, ts.Hours);
            Assert.AreEqual(0, ts.Days);

            ts = LnBase.计算节气时间差(new DateTime(2017, 2, 8, 5, 0, 0), 方向.逆行);
            Assert.AreNotEqual(TimeSpan.Zero, ts);
            Assert.AreEqual(-5, ts.Hours);
            Assert.AreEqual(-4, ts.Days);

            ts = LnBase.计算节气时间差(new DateTime(1978, 7, 1, 6, 36, 0), 方向.顺行);
            Assert.AreNotEqual(TimeSpan.Zero, ts);
            Assert.AreEqual(13, ts.Hours);
            Assert.AreEqual(6, ts.Days);
        }
예제 #5
0
 public void 查八字失败Test()
 {
     DateTime res = LnBase.查找八字("戊午", "甲午", "", 2017, 方向.逆行);
 }