The Labs \ Source Viewer \ SSCLI \ System.Globalization \ ChineseLunisolarCalendar

  1. // ==++==
  2. //
  3. //
  4. // Copyright (c) 2006 Microsoft Corporation. All rights reserved.
  5. //
  6. // The use and distribution terms for this software are contained in the file
  7. // named license.txt, which can be found in the root of this distribution.
  8. // By using this software in any fashion, you are agreeing to be bound by the
  9. // terms of this license.
  10. //
  11. // You must not remove this notice, or any other, from this software.
  12. //
  13. //
  14. // ==--==
  15. namespace System.Globalization
  16. {
  17.     using System;
  18.    
  19.     ////////////////////////////////////////////////////////////////////////////
  20.     //
  21.     // Notes about ChineseLunisolarCalendar
  22.     //
  23.     ////////////////////////////////////////////////////////////////////////////
  24. /*
  25.     **  Calendar support range:
  26.     **      Calendar      Minimum    Maximum
  27.     **      ==========    ==========  ==========
  28.     **      Gregorian      1901/02/19  2101/01/28
  29.     **      ChineseLunisolar  1901/01/01  2100/12/29
  30.     */   
  31.    
  32.     [Serializable()]
  33.     public class ChineseLunisolarCalendar : EastAsianLunisolarCalendar
  34.     {
  35.        
  36.        
  37.         //
  38.         // The era value for the current era.
  39.         //
  40.        
  41.         public const int ChineseEra = 1;
  42.         //internal static Calendar m_defaultInstance;
  43.        
  44.         internal const int MIN_LUNISOLAR_YEAR = 1901;
  45.         internal const int MAX_LUNISOLAR_YEAR = 2100;
  46.        
  47.         internal const int MIN_GREGORIAN_YEAR = 1901;
  48.         internal const int MIN_GREGORIAN_MONTH = 2;
  49.         internal const int MIN_GREGORIAN_DAY = 19;
  50.        
  51.         internal const int MAX_GREGORIAN_YEAR = 2101;
  52.         internal const int MAX_GREGORIAN_MONTH = 1;
  53.         internal const int MAX_GREGORIAN_DAY = 28;
  54.        
  55.         static internal DateTime minDate = new DateTime(MIN_GREGORIAN_YEAR, MIN_GREGORIAN_MONTH, MIN_GREGORIAN_DAY);
  56.         static internal DateTime maxDate = new DateTime((new DateTime(MAX_GREGORIAN_YEAR, MAX_GREGORIAN_MONTH, MAX_GREGORIAN_DAY, 23, 59, 59, 999)).Ticks + 9999);
  57.        
  58.         [System.Runtime.InteropServices.ComVisible(false)]
  59.         public override DateTime MinSupportedDateTime {
  60.             get { return (minDate); }
  61.         }
  62.        
  63.        
  64.         [System.Runtime.InteropServices.ComVisible(false)]
  65.         public override DateTime MaxSupportedDateTime {
  66.             get { return (maxDate); }
  67.         }
  68.        
  69.         static readonly int[,] yinfo = {{0, 2, 19, 19168}, {0, 2, 8, 42352}, {5, 1, 29, 21096}, {0, 2, 16, 53856}, {0, 2, 4, 55632}, {4, 1, 25, 27304}, {0, 2, 13, 22176}, {0, 2, 2, 39632}, {2, 1, 22, 19176}, {0, 2, 10, 19168},
  70.         {6, 1, 30, 42200}, {0, 2, 18, 42192}, {0, 2, 6, 53840}, {5, 1, 26, 54568}, {0, 2, 14, 46400}, {0, 2, 3, 54944}, {2, 1, 23, 38608}, {0, 2, 11, 38320}, {7, 2, 1, 18872}, {0, 2, 20, 18800},
  71.         {0, 2, 8, 42160}, {5, 1, 28, 45656}, {0, 2, 16, 27216}, {0, 2, 5, 27968}, {4, 1, 24, 44456}, {0, 2, 13, 11104}, {0, 2, 2, 38256}, {2, 1, 23, 18808}, {0, 2, 10, 18800}, {6, 1, 30, 25776},
  72.         {0, 2, 17, 54432}, {0, 2, 6, 59984}, {5, 1, 26, 27976}, {0, 2, 14, 23248}, {0, 2, 4, 11104}, {3, 1, 24, 37744}, {0, 2, 11, 37600}, {7, 1, 31, 51560}, {0, 2, 19, 51536}, {0, 2, 8, 54432},
  73.         {6, 1, 27, 55888}, {0, 2, 15, 46416}, {0, 2, 5, 22176}, {4, 1, 25, 43736}, {0, 2, 13, 9680}, {0, 2, 2, 37584}, {2, 1, 22, 51544}, {0, 2, 10, 43344}, {7, 1, 29, 46248}, {0, 2, 17, 27808},
  74.         {0, 2, 6, 46416}, {5, 1, 27, 21928}, {0, 2, 14, 19872}, {0, 2, 3, 42416}, {3, 1, 24, 21176}, {0, 2, 12, 21168}, {8, 1, 31, 43344}, {0, 2, 18, 59728}, {0, 2, 8, 27296}, {6, 1, 28, 44368},
  75.         {0, 2, 15, 43856}, {0, 2, 5, 19296}, {4, 1, 25, 42352}, {0, 2, 13, 42352}, {0, 2, 2, 21088}, {3, 1, 21, 59696}, {0, 2, 9, 55632}, {7, 1, 30, 23208}, {0, 2, 17, 22176}, {0, 2, 6, 38608},
  76.         {5, 1, 27, 19176}, {0, 2, 15, 19152}, {0, 2, 3, 42192}, {4, 1, 23, 53864}, {0, 2, 11, 53840}, {8, 1, 31, 54568}, {0, 2, 18, 46400}, {0, 2, 7, 46752}, {6, 1, 28, 38608}, {0, 2, 16, 38320},
  77.         {0, 2, 5, 18864}, {4, 1, 25, 42168}, {0, 2, 13, 42160}, {10, 2, 2, 45656}, {0, 2, 20, 27216}, {0, 2, 9, 27968}, {6, 1, 29, 44448}, {0, 2, 17, 43872}, {0, 2, 6, 38256}, {5, 1, 27, 18808},
  78.         {0, 2, 15, 18800}, {0, 2, 4, 25776}, {3, 1, 23, 27216}, {0, 2, 10, 59984}, {8, 1, 31, 27432}, {0, 2, 19, 23232}, {0, 2, 7, 43872}, {5, 1, 28, 37736}, {0, 2, 16, 37600}, {0, 2, 5, 51552},
  79.         {4, 1, 24, 54440}, {0, 2, 12, 54432}, {0, 2, 1, 55888}, {2, 1, 22, 23208}, {0, 2, 9, 22176}, {7, 1, 29, 43736}, {0, 2, 18, 9680}, {0, 2, 7, 37584}, {5, 1, 26, 51544}, {0, 2, 14, 43344},
  80.         {0, 2, 3, 46240}, {4, 1, 23, 46416}, {0, 2, 10, 44368}, {9, 1, 31, 21928}, {0, 2, 19, 19360}, {0, 2, 8, 42416}, {6, 1, 28, 21176}, {0, 2, 16, 21168}, {0, 2, 5, 43312}, {4, 1, 25, 29864},
  81.         {0, 2, 12, 27296}, {0, 2, 1, 44368}, {2, 1, 22, 19880}, {0, 2, 10, 19296}, {6, 1, 29, 42352}, {0, 2, 17, 42208}, {0, 2, 6, 53856}, {5, 1, 26, 59696}, {0, 2, 13, 54576}, {0, 2, 3, 23200},
  82.         {3, 1, 23, 27472}, {0, 2, 11, 38608}, {11, 1, 31, 19176}, {0, 2, 19, 19152}, {0, 2, 8, 42192}, {6, 1, 28, 53848}, {0, 2, 15, 53840}, {0, 2, 4, 54560}, {5, 1, 24, 55968}, {0, 2, 12, 46496},
  83.         {0, 2, 1, 22224}, {2, 1, 22, 19160}, {0, 2, 10, 18864}, {7, 1, 30, 42168}, {0, 2, 17, 42160}, {0, 2, 6, 43600}, {5, 1, 26, 46376}, {0, 2, 14, 27936}, {0, 2, 2, 44448}, {3, 1, 23, 21936},
  84.         {0, 2, 11, 37744}, {8, 2, 1, 18808}, {0, 2, 19, 18800}, {0, 2, 8, 25776}, {6, 1, 28, 27216}, {0, 2, 15, 59984}, {0, 2, 4, 27424}, {4, 1, 24, 43872}, {0, 2, 12, 43744}, {0, 2, 2, 37600},
  85.         {3, 1, 21, 51568}, {0, 2, 9, 51552}, {7, 1, 29, 54440}, {0, 2, 17, 54432}, {0, 2, 5, 55888}, {5, 1, 26, 23208}, {0, 2, 14, 22176}, {0, 2, 3, 42704}, {4, 1, 23, 21224}, {0, 2, 11, 21200},
  86.         {8, 1, 31, 43352}, {0, 2, 19, 43344}, {0, 2, 7, 46240}, {6, 1, 27, 46416}, {0, 2, 15, 44368}, {0, 2, 5, 21920}, {4, 1, 24, 42448}, {0, 2, 12, 42416}, {0, 2, 2, 21168}, {3, 1, 22, 43320},
  87.         {0, 2, 9, 26928}, {7, 1, 29, 29336}, {0, 2, 17, 27296}, {0, 2, 6, 44368}, {5, 1, 26, 19880}, {0, 2, 14, 19296}, {0, 2, 3, 42352}, {4, 1, 24, 21104}, {0, 2, 10, 53856}, {8, 1, 30, 59696},
  88.         {0, 2, 18, 54560}, {0, 2, 7, 55968}, {6, 1, 27, 27472}, {0, 2, 15, 22224}, {0, 2, 5, 19168}, {4, 1, 25, 42216}, {0, 2, 12, 42192}, {0, 2, 1, 53584}, {2, 1, 21, 55592}, {0, 2, 9, 54560}
  89.             /*Y LM Lmon Lday DaysPerMonth D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 #Days
  90. 1901 */            /* 29 30 29 29 30 29 30 29 30 30 30 29 0 354
  91. 1902 */            /* 30 29 30 29 29 30 29 30 29 30 30 30 0 355
  92. 1903 */            /* 29 30 29 30 29 29 30 29 29 30 30 29 30 383
  93. 1904 */            /* 30 30 29 30 29 29 30 29 29 30 30 29 0 354
  94. 1905 */            /* 30 30 29 30 30 29 29 30 29 30 29 30 0 355
  95. 1906 */            /* 29 30 30 29 30 29 30 29 30 29 30 29 30 384
  96. 1907 */            /* 29 30 29 30 29 30 30 29 30 29 30 29 0 354
  97. 1908 */            /* 30 29 29 30 30 29 30 29 30 30 29 30 0 355
  98. 1909 */            /* 29 30 29 29 30 29 30 29 30 30 30 29 30 384
  99. 1910 */            /* 29 30 29 29 30 29 30 29 30 30 30 29 0 354
  100. 1911 */            /* 30 29 30 29 29 30 29 29 30 30 29 30 30 384
  101. 1912 */            /* 30 29 30 29 29 30 29 29 30 30 29 30 0 354
  102. 1913 */            /* 30 30 29 30 29 29 30 29 29 30 29 30 0 354
  103. 1914 */            /* 30 30 29 30 29 30 29 30 29 29 30 29 30 384
  104. 1915 */            /* 30 29 30 30 29 30 29 30 29 30 29 29 0 354
  105. 1916 */            /* 30 30 29 30 29 30 30 29 30 29 30 29 0 355
  106. 1917 */            /* 30 29 29 30 29 30 30 29 30 30 29 30 29 384
  107. 1918 */            /* 30 29 29 30 29 30 29 30 30 29 30 30 0 355
  108. 1919 */            /* 29 30 29 29 30 29 29 30 30 29 30 30 30 384
  109. 1920 */            /* 29 30 29 29 30 29 29 30 29 30 30 30 0 354
  110. 1921 */            /* 30 29 30 29 29 30 29 29 30 29 30 30 0 354
  111. 1922 */            /* 30 29 30 30 29 29 30 29 29 30 29 30 30 384
  112. 1923 */            /* 29 30 30 29 30 29 30 29 29 30 29 30 0 354
  113. 1924 */            /* 29 30 30 29 30 30 29 30 29 30 29 29 0 354
  114. 1925 */            /* 30 29 30 29 30 30 29 30 30 29 30 29 30 385
  115. 1926 */            /* 29 29 30 29 30 29 30 30 29 30 30 29 0 354
  116. 1927 */            /* 30 29 29 30 29 30 29 30 29 30 30 30 0 355
  117. 1928 */            /* 29 30 29 29 30 29 29 30 29 30 30 30 30 384
  118. 1929 */            /* 29 30 29 29 30 29 29 30 29 30 30 30 0 354
  119. 1930 */            /* 29 30 30 29 29 30 29 29 30 29 30 30 29 383
  120. 1931 */            /* 30 30 29 30 29 30 29 29 30 29 30 29 0 354
  121. 1932 */            /* 30 30 30 29 30 29 30 29 29 30 29 30 0 355
  122. 1933 */            /* 29 30 30 29 30 30 29 30 29 30 29 29 30 384
  123. 1934 */            /* 29 30 29 30 30 29 30 29 30 30 29 30 0 355
  124. 1935 */            /* 29 29 30 29 30 29 30 30 29 30 30 29 0 354
  125. 1936 */            /* 30 29 29 30 29 29 30 30 29 30 30 30 29 384
  126. 1937 */            /* 30 29 29 30 29 29 30 29 30 30 30 29 0 354
  127. 1938 */            /* 30 30 29 29 30 29 29 30 29 30 30 29 30 384
  128. 1939 */            /* 30 30 29 29 30 29 29 30 29 30 29 30 0 354
  129. 1940 */            /* 30 30 29 30 29 30 29 29 30 29 30 29 0 354
  130. 1941 */            /* 30 30 29 30 30 29 30 29 29 30 29 30 29 384
  131. 1942 */            /* 30 29 30 30 29 30 29 30 29 30 29 30 0 355
  132. 1943 */            /* 29 30 29 30 29 30 30 29 30 29 30 29 0 354
  133. 1944 */            /* 30 29 30 29 30 29 30 29 30 30 29 30 30 385
  134. 1945 */            /* 29 29 30 29 29 30 29 30 30 30 29 30 0 354
  135. 1946 */            /* 30 29 29 30 29 29 30 29 30 30 29 30 0 354
  136. 1947 */            /* 30 30 29 29 30 29 29 30 29 30 29 30 30 384
  137. 1948 */            /* 30 29 30 29 30 29 29 30 29 30 29 30 0 354
  138. 1949 */            /* 30 29 30 30 29 30 29 29 30 29 30 29 30 384
  139. 1950 */            /* 29 30 30 29 30 30 29 29 30 29 30 29 0 354
  140. 1951 */            /* 30 29 30 30 29 30 29 30 29 30 29 30 0 355
  141. 1952 */            /* 29 30 29 30 29 30 29 30 30 29 30 29 30 384
  142. 1953 */            /* 29 30 29 29 30 30 29 30 30 29 30 29 0 354
  143. 1954 */            /* 30 29 30 29 29 30 29 30 30 29 30 30 0 355
  144. 1955 */            /* 29 30 29 30 29 29 30 29 30 29 30 30 30 384
  145. 1956 */            /* 29 30 29 30 29 29 30 29 30 29 30 30 0 354
  146. 1957 */            /* 30 29 30 29 30 29 29 30 29 30 29 30 29 383
  147. 1958 */            /* 30 30 30 29 30 29 29 30 29 30 29 30 0 355
  148. 1959 */            /* 29 30 30 29 30 29 30 29 30 29 30 29 0 354
  149. 1960 */            /* 30 29 30 29 30 30 29 30 29 30 29 30 29 384
  150. 1961 */            /* 30 29 30 29 30 29 30 30 29 30 29 30 0 355
  151. 1962 */            /* 29 30 29 29 30 29 30 30 29 30 30 29 0 354
  152. 1963 */            /* 30 29 30 29 29 30 29 30 29 30 30 30 29 384
  153. 1964 */            /* 30 29 30 29 29 30 29 30 29 30 30 30 0 355
  154. 1965 */            /* 29 30 29 30 29 29 30 29 29 30 30 29 0 353
  155. 1966 */            /* 30 30 30 29 30 29 29 30 29 29 30 30 29 384
  156. 1967 */            /* 30 30 29 30 30 29 29 30 29 30 29 30 0 355
  157. 1968 */            /* 29 30 29 30 30 29 30 29 30 29 30 29 30 384
  158. 1969 */            /* 29 30 29 30 29 30 30 29 30 29 30 29 0 354
  159. 1970 */            /* 30 29 29 30 29 30 30 29 30 30 29 30 0 355
  160. 1971 */            /* 29 30 29 29 30 29 30 29 30 30 30 29 30 384
  161. 1972 */            /* 29 30 29 29 30 29 30 29 30 30 29 30 0 354
  162. 1973 */            /* 30 29 30 29 29 30 29 29 30 30 29 30 0 354
  163. 1974 */            /* 30 30 29 30 29 29 30 29 29 30 30 29 30 384
  164. 1975 */            /* 30 30 29 30 29 29 30 29 29 30 29 30 0 354
  165. 1976 */            /* 30 30 29 30 29 30 29 30 29 29 30 29 30 384
  166. 1977 */            /* 30 29 30 30 29 30 29 30 29 30 29 29 0 354
  167. 1978 */            /* 30 29 30 30 29 30 30 29 30 29 30 29 0 355
  168. 1979 */            /* 30 29 29 30 29 30 30 29 30 30 29 30 29 384
  169. 1980 */            /* 30 29 29 30 29 30 29 30 30 29 30 30 0 355
  170. 1981 */            /* 29 30 29 29 30 29 29 30 30 29 30 30 0 354
  171. 1982 */            /* 30 29 30 29 29 30 29 29 30 29 30 30 30 384
  172. 1983 */            /* 30 29 30 29 29 30 29 29 30 29 30 30 0 354
  173. 1984 */            /* 30 29 30 30 29 29 30 29 29 30 29 30 30 384
  174. 1985 */            /* 29 30 30 29 30 29 30 29 29 30 29 30 0 354
  175. 1986 */            /* 29 30 30 29 30 30 29 30 29 30 29 29 0 354
  176. 1987 */            /* 30 29 30 29 30 30 29 30 30 29 30 29 29 384
  177. 1988 */            /* 30 29 30 29 30 29 30 30 29 30 30 29 0 355
  178. 1989 */            /* 30 29 29 30 29 30 29 30 29 30 30 30 0 355
  179. 1990 */            /* 29 30 29 29 30 29 29 30 29 30 30 30 30 384
  180. 1991 */            /* 29 30 29 29 30 29 29 30 29 30 30 30 0 354
  181. 1992 */            /* 29 30 30 29 29 30 29 29 30 29 30 30 0 354
  182. 1993 */            /* 29 30 30 29 30 29 30 29 29 30 29 30 29 383
  183. 1994 */            /* 30 30 30 29 30 29 30 29 29 30 29 30 0 355
  184. 1995 */            /* 29 30 30 29 30 29 30 30 29 29 30 29 30 384
  185. 1996 */            /* 29 30 29 30 30 29 30 29 30 30 29 29 0 354
  186. 1997 */            /* 30 29 30 29 30 29 30 30 29 30 30 29 0 355
  187. 1998 */            /* 30 29 29 30 29 29 30 30 29 30 30 29 30 384
  188. 1999 */            /* 30 29 29 30 29 29 30 29 30 30 30 29 0 354
  189. 2000 */            /* 30 30 29 29 30 29 29 30 29 30 30 29 0 354
  190. 2001 */            /* 30 30 29 30 29 30 29 29 30 29 30 29 30 384
  191. 2002 */            /* 30 30 29 30 29 30 29 29 30 29 30 29 0 354
  192. 2003 */            /* 30 30 29 30 30 29 30 29 29 30 29 30 0 355
  193. 2004 */            /* 29 30 29 30 30 29 30 29 30 29 30 29 30 384
  194. 2005 */            /* 29 30 29 30 29 30 30 29 30 29 30 29 0 354
  195. 2006 */            /* 30 29 30 29 30 29 30 29 30 30 29 30 30 385
  196. 2007 */            /* 29 29 30 29 29 30 29 30 30 30 29 30 0 354
  197. 2008 */            /* 30 29 29 30 29 29 30 29 30 30 29 30 0 354
  198. 2009 */            /* 30 30 29 29 30 29 29 30 29 30 29 30 30 384
  199. 2010 */            /* 30 29 30 29 30 29 29 30 29 30 29 30 0 354
  200. 2011 */            /* 30 29 30 30 29 30 29 29 30 29 30 29 0 354
  201. 2012 */            /* 30 29 30 30 29 30 29 30 29 30 29 30 29 384
  202. 2013 */            /* 30 29 30 29 30 30 29 30 29 30 29 30 0 355
  203. 2014 */            /* 29 30 29 30 29 30 29 30 30 29 30 29 30 384
  204. 2015 */            /* 29 30 29 29 30 29 30 30 30 29 30 29 0 354
  205. 2016 */            /* 30 29 30 29 29 30 29 30 30 29 30 30 0 355
  206. 2017 */            /* 29 30 29 30 29 29 30 29 30 29 30 30 30 384
  207. 2018 */            /* 29 30 29 30 29 29 30 29 30 29 30 30 0 354
  208. 2019 */            /* 30 29 30 29 30 29 29 30 29 29 30 30 0 354
  209. 2020 */            /* 29 30 30 30 29 30 29 29 30 29 30 29 30 384
  210. 2021 */            /* 29 30 30 29 30 29 30 29 30 29 30 29 0 354
  211. 2022 */            /* 30 29 30 29 30 30 29 30 29 30 29 30 0 355
  212. 2023 */            /* 29 30 29 29 30 30 29 30 30 29 30 29 30 384
  213. 2024 */            /* 29 30 29 29 30 29 30 30 29 30 30 29 0 354
  214. 2025 */            /* 30 29 30 29 29 30 29 30 29 30 30 30 29 384
  215. 2026 */            /* 30 29 30 29 29 30 29 29 30 30 30 29 0 354
  216. 2027 */            /* 30 30 29 30 29 29 30 29 29 30 30 29 0 354
  217. 2028 */            /* 30 30 30 29 30 29 29 30 29 29 30 30 29 384
  218. 2029 */            /* 30 30 29 30 29 30 29 30 29 29 30 30 0 355
  219. 2030 */            /* 29 30 29 30 30 29 30 29 30 29 30 29 0 354
  220. 2031 */            /* 29 30 30 29 30 29 30 30 29 30 29 30 29 384
  221. 2032 */            /* 30 29 29 30 29 30 30 29 30 30 29 30 0 355
  222. 2033 */            /* 29 30 29 29 30 29 30 29 30 30 30 29 30 384
  223. 2034 */            /* 29 30 29 29 30 29 30 29 30 30 29 30 0 354
  224. 2035 */            /* 30 29 30 29 29 30 29 29 30 30 29 30 0 354
  225. 2036 */            /* 30 30 29 30 29 29 30 29 29 30 29 30 30 384
  226. 2037 */            /* 30 30 29 30 29 29 30 29 29 30 29 30 0 354
  227. 2038 */            /* 30 30 29 30 29 30 29 30 29 29 30 29 0 354
  228. 2039 */            /* 30 30 29 30 30 29 30 29 30 29 30 29 29 384
  229. 2040 */            /* 30 29 30 30 29 30 29 30 30 29 30 29 0 355
  230. 2041 */            /* 29 30 29 30 29 30 30 29 30 30 29 30 0 355
  231. 2042 */            /* 29 30 29 29 30 29 30 29 30 30 29 30 30 384
  232. 2043 */            /* 29 30 29 29 30 29 29 30 30 29 30 30 0 354
  233. 2044 */            /* 30 29 30 29 29 30 29 29 30 29 30 30 30 384
  234. 2045 */            /* 30 29 30 29 29 30 29 29 30 29 30 30 0 354
  235. 2046 */            /* 30 29 30 29 30 29 30 29 29 30 29 30 0 354
  236. 2047 */            /* 30 29 30 30 29 30 29 30 29 29 30 29 30 384
  237. 2048 */            /* 29 30 30 29 30 30 29 30 29 29 30 29 0 354
  238. 2049 */            /* 30 29 30 29 30 30 29 30 30 29 30 29 0 355
  239. 2050 */            /* 29 30 29 30 29 30 29 30 30 29 30 30 29 384
  240. 2051 */            /* 30 29 29 30 29 29 30 30 29 30 30 30 0 355
  241. 2052 */            /* 29 30 29 29 30 29 29 30 29 30 30 30 30 384
  242. 2053 */            /* 29 30 29 29 30 29 29 30 29 30 30 30 0 354
  243. 2054 */            /* 29 30 30 29 29 30 29 29 30 29 30 30 0 354
  244. 2055 */            /* 29 30 30 29 30 29 30 29 29 30 29 30 29 383
  245. 2056 */            /* 30 30 30 29 30 29 30 29 29 30 29 30 0 355
  246. 2057 */            /* 29 30 30 29 30 29 30 30 29 29 30 29 0 354
  247. 2058 */            /* 30 29 30 29 30 29 30 30 29 30 30 29 29 384
  248. 2059 */            /* 30 29 30 29 30 29 30 29 30 30 30 29 0 355
  249. 2060 */            /* 30 29 29 30 29 29 30 29 30 30 30 29 0 354
  250. 2061 */            /* 30 30 29 29 30 29 29 30 29 30 30 30 29 384
  251. 2062 */            /* 30 30 29 29 30 29 29 30 29 30 30 29 0 354
  252. 2063 */            /* 30 30 29 30 29 30 29 29 30 29 30 29 30 384
  253. 2064 */            /* 30 30 29 30 29 30 29 29 30 29 30 29 0 354
  254. 2065 */            /* 30 30 29 30 30 29 30 29 29 30 29 30 0 355
  255. 2066 */            /* 29 30 29 30 30 29 30 29 30 29 30 29 30 384
  256. 2067 */            /* 29 30 29 30 29 30 30 29 30 29 30 29 0 354
  257. 2068 */            /* 30 29 30 29 29 30 30 29 30 30 29 30 0 355
  258. 2069 */            /* 29 30 29 30 29 29 30 29 30 30 30 29 30 384
  259. 2070 */            /* 29 30 29 30 29 29 30 29 30 30 29 30 0 354
  260. 2071 */            /* 30 29 30 29 30 29 29 30 29 30 29 30 30 384
  261. 2072 */            /* 30 29 30 29 30 29 29 30 29 30 29 30 0 354
  262. 2073 */            /* 30 29 30 30 29 30 29 29 30 29 30 29 0 354
  263. 2074 */            /* 30 29 30 30 29 30 29 30 29 30 29 30 29 384
  264. 2075 */            /* 30 29 30 29 30 30 29 30 29 30 29 30 0 355
  265. 2076 */            /* 29 30 29 30 29 30 29 30 30 29 30 29 0 354
  266. 2077 */            /* 30 29 30 29 29 30 29 30 30 30 29 30 29 384
  267. 2078 */            /* 30 29 30 29 29 30 29 30 30 29 30 30 0 355
  268. 2079 */            /* 29 30 29 30 29 29 30 29 30 29 30 30 0 354
  269. 2080 */            /* 30 29 30 29 30 29 29 30 29 29 30 30 30 384
  270. 2081 */            /* 29 30 30 29 30 29 29 30 29 29 30 30 0 354
  271. 2082 */            /* 29 30 30 30 29 29 30 29 30 29 29 30 30 384
  272. 2083 */            /* 29 30 30 29 30 29 30 29 30 29 30 29 0 354
  273. 2084 */            /* 30 29 30 29 30 30 29 30 29 30 29 30 0 355
  274. 2085 */            /* 29 30 29 29 30 30 29 30 30 29 30 29 30 384
  275. 2086 */            /* 29 30 29 29 30 29 30 30 29 30 30 29 0 354
  276. 2087 */            /* 30 29 30 29 29 30 29 30 29 30 30 30 0 355
  277. 2088 */            /* 29 30 29 30 29 29 30 29 29 30 30 30 29 383
  278. 2089 */            /* 30 30 29 30 29 29 30 29 29 30 30 29 0 354
  279. 2090 */            /* 30 30 30 29 30 29 29 30 29 29 30 30 29 384
  280. 2091 */            /* 30 30 29 30 29 30 29 30 29 29 30 29 0 354
  281. 2092 */            /* 30 30 29 30 30 29 30 29 30 29 30 29 0 355
  282. 2093 */            /* 29 30 30 29 30 29 30 30 29 30 29 30 29 384
  283. 2094 */            /* 29 30 29 30 29 30 30 29 30 30 29 30 0 355
  284. 2095 */            /* 29 30 29 29 30 29 30 29 30 30 30 29 0 354
  285. 2096 */            /* 30 29 30 29 29 30 29 29 30 30 30 29 30 384
  286. 2097 */            /* 30 29 30 29 29 30 29 29 30 30 29 30 0 354
  287. 2098 */            /* 30 30 29 30 29 29 29 30 29 30 29 30 0 354
  288. 2099 */            /* 30 30 29 30 30 29 29 30 29 29 30 29 30 384
  289. 2100 */            /* 30 30 29 30 29 30 29 30 29 29 30 29 0 354
  290.         */        };
  291.        
  292.        
  293.         internal override int MinCalendarYear {
  294.             get { return (MIN_LUNISOLAR_YEAR); }
  295.         }
  296.        
  297.         internal override int MaxCalendarYear {
  298.             get { return (MAX_LUNISOLAR_YEAR); }
  299.         }
  300.        
  301.         internal override DateTime MinDate {
  302.             get { return (minDate); }
  303.         }
  304.        
  305.         internal override DateTime MaxDate {
  306.             get { return (maxDate); }
  307.         }
  308.        
  309.         internal override EraInfo[] CalEraInfo {
  310.             get { return (null); }
  311.         }
  312.        
  313.         internal override int GetYearInfo(int LunarYear, int Index)
  314.         {
  315.             if ((LunarYear < MIN_LUNISOLAR_YEAR) || (LunarYear > MAX_LUNISOLAR_YEAR)) {
  316.                 throw new ArgumentOutOfRangeException("year", String.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("ArgumentOutOfRange_Range"), MIN_LUNISOLAR_YEAR, MAX_LUNISOLAR_YEAR));
  317.             }
  318.            
  319.             return yinfo[LunarYear - MIN_LUNISOLAR_YEAR, Index];
  320.         }
  321.        
  322.         internal override int GetYear(int year, DateTime time)
  323.         {
  324.             return year;
  325.         }
  326.        
  327.         internal override int GetGregorianYear(int year, int era)
  328.         {
  329.             if (era != CurrentEra && era != ChineseEra) {
  330.                 throw new ArgumentOutOfRangeException("era", Environment.GetResourceString("ArgumentOutOfRange_InvalidEraValue"));
  331.             }
  332.            
  333.             if (year < MIN_LUNISOLAR_YEAR || year > MAX_LUNISOLAR_YEAR) {
  334.                 throw new ArgumentOutOfRangeException("year", String.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("ArgumentOutOfRange_Range"), MIN_LUNISOLAR_YEAR, MAX_LUNISOLAR_YEAR));
  335.             }
  336.            
  337.             return year;
  338.         }
  339.        
  340.        
  341. /*=================================GetDefaultInstance==========================
  342.         **Action: Internal method to provide a default intance of ChineseLunisolarCalendar.  Used by NLS+ implementation
  343.         **      and other calendars.
  344.         **Returns:
  345.         **Arguments:
  346.         **Exceptions:
  347.         ============================================================================*/       
  348.        
  349. /*
  350.         internal static Calendar GetDefaultInstance()
  351.         {
  352.             if (m_defaultInstance == null) {
  353.                 m_defaultInstance = new ChineseLunisolarCalendar();
  354.             }
  355.             return (m_defaultInstance);
  356.         }
  357.         */       
  358.        
  359.         // Construct an instance of ChineseLunisolar calendar.
  360.        
  361.         public ChineseLunisolarCalendar()
  362.         {
  363.         }
  364.        
  365.        
  366.         [System.Runtime.InteropServices.ComVisible(false)]
  367.         public override int GetEra(DateTime time)
  368.         {
  369.             CheckTicksRange(time.Ticks);
  370.             return (ChineseEra);
  371.         }
  372.        
  373.         internal override int ID {
  374.             get { return (CAL_CHINESELUNISOLAR); }
  375.         }
  376.        
  377.         internal override int BaseCalendarID {
  378. //Use CAL_GREGORIAN just to get CurrentEraValue as 1 since we do not have data under the ID CAL_ChineseLunisolar yet
  379.             get { return (CAL_GREGORIAN); }
  380.         }
  381.        
  382.        
  383.         [System.Runtime.InteropServices.ComVisible(false)]
  384.         public override int[] Eras {
  385.             get { return (new int[] {ChineseEra}); }
  386.         }
  387.     }
  388. }

Developer Fusion