class System.Globalization.Calendar
   inherits System.Object
   implements System.ICloneable
   abstract:

   def public static variable CurrentEra as integer.

   def public property MinSupportedDateTime as datetime
      get.

   def public property MaxSupportedDateTime as datetime
      get.

   def public property AlgorithmType as System.Globalization.CalendarAlgorithmType
      get.

   def public property IsReadOnly as logical
      get.

   def public abstract property Eras as System.Int32 extent
      get.

   def protected property DaysInYearBeforeMinSupportedYear as integer
      get.

   def public property TwoDigitYearMax as integer
      get.
      set.

   constructor protected Calendar():
   end constructor.

   method public override System.Object Clone():
   end method.

   method public final static System.Globalization.Calendar ReadOnly(input calendar as System.Globalization.Calendar):
   end method.

   method public datetime AddMilliseconds(input time as datetime, input milliseconds as decimal):
   end method.

   method public datetime AddDays(input time as datetime, input days as integer):
   end method.

   method public datetime AddHours(input time as datetime, input hours as integer):
   end method.

   method public datetime AddMinutes(input time as datetime, input minutes as integer):
   end method.

   method public abstract datetime AddMonths(input time as datetime, input months as integer).

   method public datetime AddSeconds(input time as datetime, input seconds as integer):
   end method.

   method public datetime AddWeeks(input time as datetime, input weeks as integer):
   end method.

   method public abstract datetime AddYears(input time as datetime, input years as integer).

   method public abstract integer GetDayOfMonth(input time as datetime).

   method public abstract System.DayOfWeek GetDayOfWeek(input time as datetime).

   method public abstract integer GetDayOfYear(input time as datetime).

   method public integer GetDaysInMonth(input year as integer, input month as integer):
   end method.

   method public abstract integer GetDaysInMonth(input year as integer, input month as integer, input era as integer).

   method public integer GetDaysInYear(input year as integer):
   end method.

   method public abstract integer GetDaysInYear(input year as integer, input era as integer).

   method public abstract integer GetEra(input time as datetime).

   method public integer GetHour(input time as datetime):
   end method.

   method public decimal GetMilliseconds(input time as datetime):
   end method.

   method public integer GetMinute(input time as datetime):
   end method.

   method public abstract integer GetMonth(input time as datetime).

   method public integer GetMonthsInYear(input year as integer):
   end method.

   method public abstract integer GetMonthsInYear(input year as integer, input era as integer).

   method public integer GetSecond(input time as datetime):
   end method.

   method public integer GetWeekOfYear(input time as datetime, input rule as System.Globalization.CalendarWeekRule, input firstDayOfWeek as System.DayOfWeek):
   end method.

   method public abstract integer GetYear(input time as datetime).

   method public logical IsLeapDay(input year as integer, input month as integer, input day as integer):
   end method.

   method public abstract logical IsLeapDay(input year as integer, input month as integer, input day as integer, input era as integer).

   method public logical IsLeapMonth(input year as integer, input month as integer):
   end method.

   method public abstract logical IsLeapMonth(input year as integer, input month as integer, input era as integer).

   method public integer GetLeapMonth(input year as integer):
   end method.

   method public integer GetLeapMonth(input year as integer, input era as integer):
   end method.

   method public logical IsLeapYear(input year as integer):
   end method.

   method public abstract logical IsLeapYear(input year as integer, input era as integer).

   method public datetime ToDateTime(input year as integer, input month as integer, input day as integer, input hour as integer, input minute as integer, input second as integer, input millisecond as integer):
   end method.

   method public abstract datetime ToDateTime(input year as integer, input month as integer, input day as integer, input hour as integer, input minute as integer, input second as integer, input millisecond as integer, input era as integer).

   method public integer ToFourDigitYear(input year as integer):
   end method.

end class.
