public static void Main()
    {
        // Creates and initializes a KoreanCalendar.
        KoreanCalendar myCal = new KoreanCalendar();

        // Displays the header.
        Console.Write("YEAR\t");
        for (int y = 4334; y <= 4338; y++)
        {
            Console.Write("\t{0}", y);
        }
        Console.WriteLine();

        // Displays the value of the CurrentEra property.
        Console.Write("CurrentEra:");
        for (int y = 4334; y <= 4338; y++)
        {
            Console.Write("\t{0}", myCal.GetDaysInYear(y, KoreanCalendar.CurrentEra));
        }
        Console.WriteLine();

        // Displays the values in the Eras property.
        for (int i = 0; i < myCal.Eras.Length; i++)
        {
            Console.Write("Era {0}:\t", myCal.Eras[i]);
            for (int y = 4334; y <= 4338; y++)
            {
                Console.Write("\t{0}", myCal.GetDaysInYear(y, myCal.Eras[i]));
            }
            Console.WriteLine();
        }
    }
 public void GetDaysInYear(int year)
 {
     KoreanCalendar calendar = new KoreanCalendar();
     int expected = new GregorianCalendar().GetDaysInYear(year);
     Assert.Equal(expected, calendar.GetDaysInYear(year + 2333));
     Assert.Equal(expected, calendar.GetDaysInYear(year + 2333, 0));
     Assert.Equal(expected, calendar.GetDaysInYear(year + 2333, 1));
 }
        public void GetDaysInYear(int year)
        {
            KoreanCalendar calendar = new KoreanCalendar();
            int            expected = new GregorianCalendar().GetDaysInYear(year);

            Assert.Equal(expected, calendar.GetDaysInYear(year + 2333));
            Assert.Equal(expected, calendar.GetDaysInYear(year + 2333, 0));
            Assert.Equal(expected, calendar.GetDaysInYear(year + 2333, 1));
        }
        public void PosTest3()
        {
            System.Globalization.Calendar kC = new KoreanCalendar();
            System.Globalization.Calendar gC = new GregorianCalendar();
            DateTime dateTime      = new GregorianCalendar().ToDateTime(2004, 2, 29, 0, 0, 0, 0);
            int      expectedValue = gC.GetDaysInYear(dateTime.Year, gC.GetEra(dateTime));
            int      actualValue;

            actualValue = kC.GetDaysInYear(dateTime.Year + 2333, kC.GetEra(dateTime));
            Assert.Equal(expectedValue, actualValue);
        }
        public void NegTest2()
        {
            System.Globalization.Calendar kC = new KoreanCalendar();
            int year = _generator.GetInt16(-55) % 2334;
            int era  = kC.GetEra(new DateTime());
            int actualValue;

            Assert.Throws <ArgumentOutOfRangeException>(() =>
            {
                actualValue = kC.GetDaysInYear(-1, era);
            });
        }
        public void NegTest7()
        {
            System.Globalization.Calendar kC = new KoreanCalendar();
            int year = _generator.GetInt16(-55) % 10000 + 2333;
            int era  = -1;
            int actualValue;

            Assert.Throws <ArgumentOutOfRangeException>(() =>
            {
                actualValue = kC.GetDaysInYear(year, era);
            });
        }
        public void PosTest4()
        {
            System.Globalization.Calendar kC = new KoreanCalendar();
            System.Globalization.Calendar gC = new GregorianCalendar();
            DateTime dateTime = new DateTime(_generator.GetInt64(-55) % (DateTime.MaxValue.Ticks + 1));

            dateTime = new GregorianCalendar().ToDateTime(dateTime.Year, dateTime.Month, dateTime.Day, 0, 0, 0, 0);
            int month         = _generator.GetInt16(-55) % 12 + 1;
            int expectedValue = gC.GetDaysInYear(dateTime.Year, gC.GetEra(dateTime));
            int actualValue;

            actualValue = kC.GetDaysInYear(dateTime.Year + 2333, kC.GetEra(dateTime));
            Assert.Equal(expectedValue, actualValue);
        }
        public void NegTest8()
        {
            System.Globalization.Calendar kC = new KoreanCalendar();
            int year = _generator.GetInt16(-55) % 10000 + 2333;
            // In order for an ArgumentOutOfRangeException to get thrown due to an era being outside the supported range, the era must
            // be greater than 1 since 0 and 1 are supported eras
            int era = 2;
            int actualValue;

            Assert.Throws <ArgumentOutOfRangeException>(() =>
            {
                actualValue = kC.GetDaysInYear(year, era);
            });
        }