Merge pull request #726 from pruiz/xamarin-bug-13708
[mono.git] / mcs / class / corlib / System.Globalization / KoreanCalendar.cs
index 82b1f82e0c3c5651f0ccb0a8bf76fad62bd21245..80f266c36069a93816e4af60806fd525e91eb310 100644 (file)
@@ -1,4 +1,4 @@
-// KoreanCalendar.cs
+// System.Globalization.KoreanCalendar.cs
 //
 // (C) Ulrich Kunitz 2002
 //
@@ -29,6 +29,7 @@
 namespace System.Globalization {
 
 using System;
+using System.Runtime.InteropServices;
 
 /// <summary>
 /// This is the Korean calendar. It differs from the Gegorian calendar only
@@ -40,7 +41,8 @@ using System;
 /// </para>
 /// </remarks>
 [Serializable]
-[MonoTODO ("Fix serialization compatibility with MS.NET")]
+[ComVisible (true)]
+[MonoLimitation ("Serialization format not compatible with .NET")]
 public class KoreanCalendar : Calendar {
        /// <summary>
        /// Static protected field storing the
@@ -69,8 +71,8 @@ public class KoreanCalendar : Calendar {
        public KoreanCalendar() {
                M_AbbrEraNames = new string[] {"K.C.E."};
                M_EraNames = new string[] {"Korean Current Era"};
-               if (M_TwoDigitYearMax == 99)
-                       M_TwoDigitYearMax = 4362;
+               if (twoDigitYearMax == 99)
+                       twoDigitYearMax = 4362;
        }
 
        /// <value>Overridden. Gives the eras supported by the
@@ -82,8 +84,6 @@ public class KoreanCalendar : Calendar {
                }
        }
 
-       int twoDigitYearMax = 4362;
-
        public override int TwoDigitYearMax 
        {
                get {
@@ -322,6 +322,12 @@ public class KoreanCalendar : Calendar {
                return era;
        }
 
+       [ComVisible (false)]
+       public override int GetLeapMonth (int year, int era)
+       {
+               return 0;
+       }
+
        /// <summary>
        /// Overridden. Gives the number of the month of the specified
        /// date.
@@ -354,6 +360,12 @@ public class KoreanCalendar : Calendar {
                return 12;
        }
 
+       [ComVisible (false)]
+       public override int GetWeekOfYear (DateTime time, CalendarWeekRule rule, DayOfWeek firstDayOfWeek)
+       {
+               return base.GetWeekOfYear (time, rule, firstDayOfWeek);
+       }
+
        /// <summary>
        /// Overridden. Gives the number of the year of the specified
        /// date.
@@ -470,43 +482,45 @@ public class KoreanCalendar : Calendar {
        /// is out of range.
        /// </exception>
        public override DateTime ToDateTime(int year, int month, int day,
-               int hour, int minute, int second, int milliseconds,
+               int hour, int minute, int second, int millisecond,
                int era)
        {
                int gregorianYear = M_CheckYMDEG(year, month, day, ref era);
-               M_CheckHMSM(hour, minute, second, milliseconds);
+               M_CheckHMSM(hour, minute, second, millisecond);
                return CCGregorianCalendar.ToDateTime(gregorianYear,
-                       month, day, hour, minute, second, milliseconds);
+                       month, day, hour, minute, second, millisecond);
        }
 
-       [MonoTODO]
        public override int ToFourDigitYear(int year)
        {
-               throw new NotImplementedException();
+               return base.ToFourDigitYear (year);
        }
        
-#if NET_2_0
+#if !NET_2_1
+       [ComVisible (false)]
        public override CalendarAlgorithmType AlgorithmType {
                get {
                        return CalendarAlgorithmType.SolarCalendar;
                }
        }
+#endif
 
        static DateTime KoreanMin = new DateTime (1, 1, 1, 0, 0, 0);
        static DateTime KoreanMax = new DateTime (9999, 12, 31, 11, 59, 59);
                
+       [ComVisible (false)]
        public override DateTime MinSupportedDateTime {
                get {
                        return KoreanMin;
                }
        }
 
+       [ComVisible (false)]
        public override DateTime MaxSupportedDateTime {
                get {
                        return KoreanMax;
                }
        }
-#endif
        
 } // class KoreanCalendar