-// GregorianCalendar.cs
+// System.Globalization.GregorianCalendar.cs
//
// (C) Ulrich Kunitz 2002
//
namespace System.Globalization {
using System;
+using System.Runtime.InteropServices;
/// <summary>
/// This is the Gregorian calendar.
/// </para>
/// </remarks>
[Serializable]
-[MonoTODO ("Serialization format not compatible with .NET")]
+[ComVisible (true)]
+[MonoLimitation ("Serialization format not compatible with .NET")]
public class GregorianCalendar : Calendar {
/// <summary>
return ADEra;
}
+ [ComVisible (false)]
+ public override int GetLeapMonth (int year, int era)
+ {
+ return 0;
+ }
+
/// <summary>
/// Overridden. Gives the number of the month of the specified
/// date.
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.
/// 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)
{
M_CheckYMDE(year, month, day, ref era);
- M_CheckHMSM(hour, minute, second, milliseconds);
+ M_CheckHMSM(hour, minute, second, millisecond);
return CCGregorianCalendar.ToDateTime(
year, month, day,
- hour, minute, second, milliseconds);
+ hour, minute, second, millisecond);
}
- [MonoTODO ("Not supported")]
public override int ToFourDigitYear(int year)
{
- throw new NotImplementedException();
+ return base.ToFourDigitYear (year);
}
/// <summary>
/// </param>
public GregorianCalendar(GregorianCalendarTypes type) {
CalendarType = type;
- M_AbbrEraNames = new string[] {"C.E."};
- M_EraNames = new string[] {"Common Era"};
+ M_AbbrEraNames = new string[] {"AD"};
+ M_EraNames = new string[] {"A.D."};
if (twoDigitYearMax == 99)
twoDigitYearMax = 2029;
}
-#if NET_2_0
+#if !NET_2_1
+ [ComVisible (false)]
public override CalendarAlgorithmType AlgorithmType {
get {
return CalendarAlgorithmType.SolarCalendar;
}
}
+#endif
- static DateTime Min = new DateTime (1, 1, 1, 0, 0, 0);
- static DateTime Max = new DateTime (9999, 12, 31, 11, 59, 59);
+ static DateTime? Min, Max;
+ [ComVisible (false)]
public override DateTime MinSupportedDateTime {
get {
- return Min;
+ if (Min == null)
+ Min = new DateTime (1, 1, 1, 0, 0, 0);
+ return Min.Value;
}
}
+ [ComVisible (false)]
public override DateTime MaxSupportedDateTime {
get {
- return Max;
+ if (Max == null)
+ Max = new DateTime (9999, 12, 31, 11, 59, 59);
+ return Max.Value;
}
}
-#endif
/// <summary>
/// Default constructor. Sets the Gregorian calendar type to