コード例 #1
0
        public void ChineseCalendar_Test()
        {
            var c1 = new ChineseCalendar(new DateTime(2019, 1, 5, 12, 10, 10));

            Assert.Equal(11, c1.Animal);
            Assert.Equal("狗", c1.AnimalString);
            Assert.Equal(2018, c1.ChineseYear);
            Assert.Equal("二零一八年", c1.ChineseYearString);
            Assert.Equal(11, c1.ChineseMonth);
            Assert.Equal("十一月", c1.ChineseMonthString);
            Assert.Equal(30, c1.ChineseDay);
            Assert.Equal("三十", c1.ChineseDayString);
            Assert.Equal("戊戌年", c1.GanZhiYearString);
            Assert.Equal("甲子月", c1.GanZhiMonthString);
            Assert.Equal("壬寅日", c1.GanZhiDayString);
            Assert.Equal("丙午", c1.ChineseHour);
            Assert.Equal("戊戌年甲子月壬寅日", c1.GanZhiDateString);
            Assert.Equal("", c1.ChineseCalendarHoliday);
            Assert.Equal("胃土彘", c1.ChineseConstellation);
            Assert.Equal("农历二零一八年十一月三十", c1.ChineseDateString);
            Assert.Equal("小寒", c1.ChineseTwentyFourDay);
            Assert.Equal("星期六", c1.WeekDayStr);
            Assert.Equal("", c1.WeekDayHoliday);
            Assert.Equal("摩羯座", c1.Constellation);
            Assert.Equal("大寒[2019-01-20]", c1.ChineseTwentyFourNextDay);
            Assert.Equal("", c1.ChineseTwentyFourPrevDay);
            Assert.Equal("公元2019-01-05 00:00:00", c1.DateString);
            Assert.Equal(DayOfWeek.Saturday, c1.WeekDay);
            Assert.False(c1.IsChineseLeapYear);
            Assert.False(c1.IsChineseLeapMonth);
            Assert.Equal(new DateTime(2019, 1, 5), c1.Date);
            Assert.Equal("", c1.DateHoliday);
            Assert.False(c1.IsLeapYear);

            var c2 = c1.NextDay();

            Assert.Equal("癸卯日", c2.GanZhiDayString);

            var c3 = c1.PervDay();

            Assert.Equal("辛丑日", c3.GanZhiDayString);

            var c4 = new ChineseCalendar(2018, 1, 1, false);

            Assert.Equal("二零一八年", c4.ChineseYearString);
            Assert.Equal("春节", c4.ChineseCalendarHoliday);

            var c5 = new ChineseCalendar(2017, 6, 2, true);

            Assert.True(c5.IsChineseLeapYear);
            Assert.True(c5.IsChineseLeapMonth);

            var c6 = new ChineseCalendar(new DateTime(2019, 8, 15));

            Assert.Equal("壬申月", c6.GanZhiMonthString);

            var c7 = new ChineseCalendar(new DateTime(2019, 5, 12));

            Assert.Equal("母亲节", c7.WeekDayHoliday);

            var c8 = new ChineseCalendar(new DateTime(2019, 5, 14));

            Assert.Equal("初十", c8.ChineseDayString);

            var c9 = new ChineseCalendar(new DateTime(2019, 5, 24));

            Assert.Equal("二十", c9.ChineseDayString);

            var c10 = new ChineseCalendar(new DateTime(2018, 2, 15));

            Assert.Equal("除夕", c10.ChineseCalendarHoliday);

            var cn1 = new ChineseCalendar(new DateTime(2019, 7, 1));
            var cn2 = new ChineseCalendar(new DateTime(2019, 7, 2));
            var cn3 = new ChineseCalendar(new DateTime(2019, 7, 3));
            var cn4 = new ChineseCalendar(new DateTime(2019, 7, 4));
            var cn5 = new ChineseCalendar(new DateTime(2019, 7, 5));
            var cn6 = new ChineseCalendar(new DateTime(2019, 7, 6));
            var cn7 = new ChineseCalendar(new DateTime(2019, 7, 7));

            Assert.Equal("星期一", cn1.WeekDayStr);
            Assert.Equal("星期二", cn2.WeekDayStr);
            Assert.Equal("星期三", cn3.WeekDayStr);
            Assert.Equal("星期四", cn4.WeekDayStr);
            Assert.Equal("星期五", cn5.WeekDayStr);
            Assert.Equal("星期六", cn6.WeekDayStr);
            Assert.Equal("星期日", cn7.WeekDayStr);

            Assert.Equal("", cn1.WeekDayHoliday);
            Assert.Equal("", cn2.WeekDayHoliday);
            Assert.Equal("", cn3.WeekDayHoliday);
            Assert.Equal("", cn4.WeekDayHoliday);
            Assert.Equal("", cn5.WeekDayHoliday);
            Assert.Equal("", cn6.WeekDayHoliday);
            Assert.Equal("", cn7.WeekDayHoliday);


            var cons1  = new ChineseCalendar(new DateTime(2011, 1, 1));
            var cons2  = new ChineseCalendar(new DateTime(2012, 2, 10));
            var cons3  = new ChineseCalendar(new DateTime(2013, 3, 5));
            var cons4  = new ChineseCalendar(new DateTime(2014, 4, 10));
            var cons5  = new ChineseCalendar(new DateTime(2015, 5, 10));
            var cons6  = new ChineseCalendar(new DateTime(2016, 6, 10));
            var cons7  = new ChineseCalendar(new DateTime(2017, 7, 10));
            var cons8  = new ChineseCalendar(new DateTime(2018, 8, 10));
            var cons9  = new ChineseCalendar(new DateTime(2019, 9, 10));
            var cons10 = new ChineseCalendar(new DateTime(2019, 10, 10));
            var cons11 = new ChineseCalendar(new DateTime(2019, 11, 10));
            var cons12 = new ChineseCalendar(new DateTime(2019, 12, 10));

            Assert.Equal("摩羯座", cons1.Constellation);
            Assert.Equal("二零一零年", cons1.ChineseYearString);
            Assert.Equal("戊子月", cons1.GanZhiMonthString);



            Assert.Equal("水瓶座", cons2.Constellation);
            Assert.Equal("二零一二年", cons2.ChineseYearString);
            Assert.Equal("壬寅月", cons2.GanZhiMonthString);

            Assert.Equal("双鱼座", cons3.Constellation);
            Assert.Equal("二零一三年", cons3.ChineseYearString);
            Assert.Equal("甲寅月", cons3.GanZhiMonthString);

            Assert.Equal("白羊座", cons4.Constellation);
            Assert.Equal("二零一四年", cons4.ChineseYearString);
            Assert.Equal("戊辰月", cons4.GanZhiMonthString);

            Assert.Equal("金牛座", cons5.Constellation);
            Assert.Equal("二零一五年", cons5.ChineseYearString);
            Assert.Equal("庚辰月", cons5.GanZhiMonthString);

            Assert.Equal("双子座", cons6.Constellation);
            Assert.Equal("二零一六年", cons6.ChineseYearString);
            Assert.Equal("甲午月", cons6.GanZhiMonthString);

            Assert.Equal("巨蟹座", cons7.Constellation);
            Assert.Equal("二零一七年", cons7.ChineseYearString);
            Assert.Equal("丁未月", cons7.GanZhiMonthString);

            Assert.Equal("狮子座", cons8.Constellation);
            Assert.Equal("二零一八年", cons8.ChineseYearString);



            Assert.Equal("处女座", cons9.Constellation);
            Assert.Equal("二零一九年", cons9.ChineseYearString);
            Assert.Equal("癸酉月", cons9.GanZhiMonthString);

            Assert.Equal("天秤座", cons10.Constellation);
            Assert.Equal("天蝎座", cons11.Constellation);

            Assert.Equal("射手座", cons12.Constellation);

            Assert.Throws <ChineseCalendarException>(() =>
            {
                new ChineseCalendar(2016, 13, 1, false);
            });
            Assert.Throws <ChineseCalendarException>(() =>
            {
                new ChineseCalendar(2016, 2, 31, false);
            });
        }