Exemple #1
0
        public void LnDate构造函数Test()
        {
            LnDate date = new LnDate(new DateTime(2017, 2, 3));

            Assert.AreEqual(DateTime.Now.Year, date.Year);
            Assert.AreEqual(string.Empty, date.JieQi);
            Assert.AreEqual("初七", date.DayNL);
            Assert.AreEqual("正", date.MonthNL);
            Assert.AreEqual(string.Empty, date.Leap);
            Assert.IsFalse(date.换月);

            date = new LnDate(new DateTime(2017, 2, 4));
            Assert.AreEqual("立春", date.JieQi);
            Assert.AreEqual("初八", date.DayNL);
            Assert.IsTrue(date.换月);

            date = new LnDate(new DateTime(1978, 7, 1));
            Assert.AreEqual("廿六", date.DayNL);
            Assert.AreEqual("五", date.MonthNL);

            date = new LnDate(new DateTime(2017, 7, 22));
            Assert.AreEqual("廿九", date.DayNL);
            Assert.AreEqual("六", date.MonthNL);
            Assert.AreEqual(string.Empty, date.Leap);

            date = new LnDate(new DateTime(2017, 7, 23));
            Assert.AreEqual("初一", date.DayNL);
            Assert.AreEqual("六", date.MonthNL);
            Assert.AreEqual("闰", date.Leap);
        }
Exemple #2
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.忌日.杨公十三忌);
        }
Exemple #3
0
        public void 节气Test()
        {
            // 2017.2.3 晚 23后换月令 所以当天还是
            LnDate date = new LnDate(new DateTime(2017, 2, 3));

            Assert.AreEqual("丙申", date.YearGZ);
            Assert.AreEqual("辛丑", date.MonthGZ);
            Assert.AreEqual("辛酉", date.DayGZ);
            Assert.IsFalse(date.换月);

            date = new LnDate(new DateTime(2017, 2, 2));
            Assert.AreEqual("丙申", date.YearGZ);
            Assert.AreEqual("辛丑", date.MonthGZ);
            Assert.AreEqual("庚申", date.DayGZ);
            Assert.IsFalse(date.换月);

            date = new LnDate(new DateTime(2017, 2, 4));
            Assert.AreEqual("丁酉", date.YearGZ);
            Assert.AreEqual("壬寅", date.MonthGZ);
            Assert.AreEqual("壬戌", date.DayGZ);
            Assert.IsTrue(date.换月);

            date = new LnDate(new DateTime(2017, 2, 18));
            Assert.AreEqual("丁酉", date.YearGZ);
            Assert.AreEqual("壬寅", date.MonthGZ);
            Assert.AreEqual("丙子", date.DayGZ);
            Assert.IsFalse(date.换月);

            // 普通的换节气的日子
            date = new LnDate(new DateTime(2017, 3, 5));
            Assert.AreEqual("丁酉", date.YearGZ);
            Assert.AreEqual("癸卯", date.MonthGZ);
            Assert.AreEqual("辛卯", date.DayGZ);
            Assert.IsTrue(date.换月);

            date = new LnDate(new DateTime(2017, 3, 4));
            Assert.AreEqual("丁酉", date.YearGZ);
            Assert.AreEqual("壬寅", date.MonthGZ);
            Assert.AreEqual("庚寅", date.DayGZ);
            Assert.IsFalse(date.换月);

            // 节气中的“节”不换月的 2016年1月20日晚23点27分换大寒
            LnDate dahan1 = new LnDate(2016, 1, 20);

            Assert.AreEqual("乙未", dahan1.YearGZ);
            Assert.AreEqual("己丑", dahan1.MonthGZ);
            Assert.AreEqual("辛丑", dahan1.DayGZ);
            Assert.IsFalse(date.换月);

            LnDate dahan = new LnDate(2016, 1, 21);

            Assert.AreEqual("乙未", dahan.YearGZ);
            Assert.AreEqual("己丑", dahan.MonthGZ);
            Assert.AreEqual("壬寅", dahan.DayGZ);
            Assert.IsFalse(date.换月);
        }
Exemple #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);
        }