ChineseLunisolarCalendar.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / clr / src / BCL / System / Globalization / ChineseLunisolarCalendar.cs / 1 / ChineseLunisolarCalendar.cs

                            // ==++== 
//
//   Copyright (c) Microsoft Corporation.  All rights reserved.
//
// ==--== 
namespace System.Globalization {
    using System; 
 
    ////////////////////////////////////////////////////////////////////////////
    // 
    //  Notes about ChineseLunisolarCalendar
    //
    ////////////////////////////////////////////////////////////////////////////
     /* 
     **  Calendar support range:
     **      Calendar       		Minimum     		Maximum 
     **      ==========     ==========  ========== 
     **      Gregorian      		1901/02/19  		2101/01/28
     **      ChineseLunisolar   1901/01/01  		2100/12/29 
     */

    [Serializable]
    public class ChineseLunisolarCalendar : EastAsianLunisolarCalendar { 

 
        // 
        // The era value for the current era.
        // 

        public const int ChineseEra = 1;
        //internal static Calendar m_defaultInstance;
 
        internal const int MIN_LUNISOLAR_YEAR = 1901;
        internal const int MAX_LUNISOLAR_YEAR = 2100; 
 
        internal const int MIN_GREGORIAN_YEAR = 1901;
        internal const int MIN_GREGORIAN_MONTH = 2; 
        internal const int MIN_GREGORIAN_DAY = 19;

        internal const int MAX_GREGORIAN_YEAR = 2101;
        internal const int MAX_GREGORIAN_MONTH = 1; 
        internal const int MAX_GREGORIAN_DAY = 28;
 
        internal static DateTime minDate = new DateTime(MIN_GREGORIAN_YEAR, MIN_GREGORIAN_MONTH, MIN_GREGORIAN_DAY); 
        internal static DateTime maxDate = new DateTime((new DateTime(MAX_GREGORIAN_YEAR, MAX_GREGORIAN_MONTH, MAX_GREGORIAN_DAY, 23, 59, 59, 999)).Ticks + 9999);
 
        [System.Runtime.InteropServices.ComVisible(false)]
        public override DateTime MinSupportedDateTime  {
            get
            { 
                return (minDate);
            } 
        } 

 
        [System.Runtime.InteropServices.ComVisible(false)]
        public override DateTime MaxSupportedDateTime {
            get
            { 
                return (maxDate);
            } 
        } 

        static readonly int  [,] yinfo = 
        {
 /*Y			LM		Lmon	Lday		DaysPerMonth	D1	D2	D3	D4	D5	D6	D7	D8	D9	D10	D11	D12	D13	#Days
1901	*/{	0	,	2	,	19	,	19168	},/*	29	30	29	29	30	29	30	29	30	30	30	29	0	354
1902	*/{	0	,	2	,	8	,	42352	},/*	30	29	30	29	29	30	29	30	29	30	30	30	0	355 
1903	*/{	5	,	1	,	29	,	21096	},/*	29	30	29	30	29	29	30	29	29	30	30	29	30	383
1904	*/{	0	,	2	,	16	,	53856	},/*	30	30	29	30	29	29	30	29	29	30	30	29	0	354 
1905	*/{	0	,	2	,	4	,	55632	},/*	30	30	29	30	30	29	29	30	29	30	29	30	0	355 
1906	*/{	4	,	1	,	25	,	27304	},/*	29	30	30	29	30	29	30	29	30	29	30	29	30	384
1907	*/{	0	,	2	,	13	,	22176	},/*	29	30	29	30	29	30	30	29	30	29	30	29	0	354 
1908	*/{	0	,	2	,	2	,	39632	},/*	30	29	29	30	30	29	30	29	30	30	29	30	0	355
1909	*/{	2	,	1	,	22	,	19176	},/*	29	30	29	29	30	29	30	29	30	30	30	29	30	384
1910	*/{	0	,	2	,	10	,	19168	},/*	29	30	29	29	30	29	30	29	30	30	30	29	0	354
1911	*/{	6	,	1	,	30	,	42200	},/*	30	29	30	29	29	30	29	29	30	30	29	30	30	384 
1912	*/{	0	,	2	,	18	,	42192	},/*	30	29	30	29	29	30	29	29	30	30	29	30	0	354
1913	*/{	0	,	2	,	6	,	53840	},/*	30	30	29	30	29	29	30	29	29	30	29	30	0	354 
1914	*/{	5	,	1	,	26	,	54568	},/*	30	30	29	30	29	30	29	30	29	29	30	29	30	384 
1915	*/{	0	,	2	,	14	,	46400	},/*	30	29	30	30	29	30	29	30	29	30	29	29	0	354
1916	*/{	0	,	2	,	3	,	54944	},/*	30	30	29	30	29	30	30	29	30	29	30	29	0	355 
1917	*/{	2	,	1	,	23	,	38608	},/*	30	29	29	30	29	30	30	29	30	30	29	30	29	384
1918	*/{	0	,	2	,	11	,	38320	},/*	30	29	29	30	29	30	29	30	30	29	30	30	0	355
1919	*/{	7	,	2	,	1	,	18872	},/*	29	30	29	29	30	29	29	30	30	29	30	30	30	384
1920	*/{	0	,	2	,	20	,	18800	},/*	29	30	29	29	30	29	29	30	29	30	30	30	0	354 
1921	*/{	0	,	2	,	8	,	42160	},/*	30	29	30	29	29	30	29	29	30	29	30	30	0	354
1922	*/{	5	,	1	,	28	,	45656	},/*	30	29	30	30	29	29	30	29	29	30	29	30	30	384 
1923	*/{	0	,	2	,	16	,	27216	},/*	29	30	30	29	30	29	30	29	29	30	29	30	0	354 
1924	*/{	0	,	2	,	5	,	27968	},/*	29	30	30	29	30	30	29	30	29	30	29	29	0	354
1925	*/{	4	,	1	,	24	,	44456	},/*	30	29	30	29	30	30	29	30	30	29	30	29	30	385 
1926	*/{	0	,	2	,	13	,	11104	},/*	29	29	30	29	30	29	30	30	29	30	30	29	0	354
1927	*/{	0	,	2	,	2	,	38256	},/*	30	29	29	30	29	30	29	30	29	30	30	30	0	355
1928	*/{	2	,	1	,	23	,	18808	},/*	29	30	29	29	30	29	29	30	29	30	30	30	30	384
1929	*/{	0	,	2	,	10	,	18800	},/*	29	30	29	29	30	29	29	30	29	30	30	30	0	354 
1930	*/{	6	,	1	,	30	,	25776	},/*	29	30	30	29	29	30	29	29	30	29	30	30	29	383
1931	*/{	0	,	2	,	17	,	54432	},/*	30	30	29	30	29	30	29	29	30	29	30	29	0	354 
1932	*/{	0	,	2	,	6	,	59984	},/*	30	30	30	29	30	29	30	29	29	30	29	30	0	355 
1933	*/{	5	,	1	,	26	,	27976	},/*	29	30	30	29	30	30	29	30	29	30	29	29	30	384
1934	*/{	0	,	2	,	14	,	23248	},/*	29	30	29	30	30	29	30	29	30	30	29	30	0	355 
1935	*/{	0	,	2	,	4	,	11104	},/*	29	29	30	29	30	29	30	30	29	30	30	29	0	354
1936	*/{	3	,	1	,	24	,	37744	},/*	30	29	29	30	29	29	30	30	29	30	30	30	29	384
1937	*/{	0	,	2	,	11	,	37600	},/*	30	29	29	30	29	29	30	29	30	30	30	29	0	354
1938	*/{	7	,	1	,	31	,	51560	},/*	30	30	29	29	30	29	29	30	29	30	30	29	30	384 
1939	*/{	0	,	2	,	19	,	51536	},/*	30	30	29	29	30	29	29	30	29	30	29	30	0	354
1940	*/{	0	,	2	,	8	,	54432	},/*	30	30	29	30	29	30	29	29	30	29	30	29	0	354 
1941	*/{	6	,	1	,	27	,	55888	},/*	30	30	29	30	30	29	30	29	29	30	29	30	29	384 
1942	*/{	0	,	2	,	15	,	46416	},/*	30	29	30	30	29	30	29	30	29	30	29	30	0	355
1943	*/{	0	,	2	,	5	,	22176	},/*	29	30	29	30	29	30	30	29	30	29	30	29	0	354 
1944	*/{	4	,	1	,	25	,	43736	},/*	30	29	30	29	30	29	30	29	30	30	29	30	30	385
1945	*/{	0	,	2	,	13	,	9680	},/*	29	29	30	29	29	30	29	30	30	30	29	30	0	354
1946	*/{	0	,	2	,	2	,	37584	},/*	30	29	29	30	29	29	30	29	30	30	29	30	0	354
1947	*/{	2	,	1	,	22	,	51544	},/*	30	30	29	29	30	29	29	30	29	30	29	30	30	384 
1948	*/{	0	,	2	,	10	,	43344	},/*	30	29	30	29	30	29	29	30	29	30	29	30	0	354
1949	*/{	7	,	1	,	29	,	46248	},/*	30	29	30	30	29	30	29	29	30	29	30	29	30	384 
1950	*/{	0	,	2	,	17	,	27808	},/*	29	30	30	29	30	30	29	29	30	29	30	29	0	354 
1951	*/{	0	,	2	,	6	,	46416	},/*	30	29	30	30	29	30	29	30	29	30	29	30	0	355
1952	*/{	5	,	1	,	27	,	21928	},/*	29	30	29	30	29	30	29	30	30	29	30	29	30	384 
1953	*/{	0	,	2	,	14	,	19872	},/*	29	30	29	29	30	30	29	30	30	29	30	29	0	354
1954	*/{	0	,	2	,	3	,	42416	},/*	30	29	30	29	29	30	29	30	30	29	30	30	0	355
1955	*/{	3	,	1	,	24	,	21176	},/*	29	30	29	30	29	29	30	29	30	29	30	30	30	384
1956	*/{	0	,	2	,	12	,	21168	},/*	29	30	29	30	29	29	30	29	30	29	30	30	0	354 
1957	*/{	8	,	1	,	31	,	43344	},/*	30	29	30	29	30	29	29	30	29	30	29	30	29	383
1958	*/{	0	,	2	,	18	,	59728	},/*	30	30	30	29	30	29	29	30	29	30	29	30	0	355 
1959	*/{	0	,	2	,	8	,	27296	},/*	29	30	30	29	30	29	30	29	30	29	30	29	0	354 
1960	*/{	6	,	1	,	28	,	44368	},/*	30	29	30	29	30	30	29	30	29	30	29	30	29	384
1961	*/{	0	,	2	,	15	,	43856	},/*	30	29	30	29	30	29	30	30	29	30	29	30	0	355 
1962	*/{	0	,	2	,	5	,	19296	},/*	29	30	29	29	30	29	30	30	29	30	30	29	0	354
1963	*/{	4	,	1	,	25	,	42352	},/*	30	29	30	29	29	30	29	30	29	30	30	30	29	384
1964	*/{	0	,	2	,	13	,	42352	},/*	30	29	30	29	29	30	29	30	29	30	30	30	0	355
1965	*/{	0	,	2	,	2	,	21088	},/*	29	30	29	30	29	29	30	29	29	30	30	29	0	353 
1966	*/{	3	,	1	,	21	,	59696	},/*	30	30	30	29	30	29	29	30	29	29	30	30	29	384
1967	*/{	0	,	2	,	9	,	55632	},/*	30	30	29	30	30	29	29	30	29	30	29	30	0	355 
1968	*/{	7	,	1	,	30	,	23208	},/*	29	30	29	30	30	29	30	29	30	29	30	29	30	384 
1969	*/{	0	,	2	,	17	,	22176	},/*	29	30	29	30	29	30	30	29	30	29	30	29	0	354
1970	*/{	0	,	2	,	6	,	38608	},/*	30	29	29	30	29	30	30	29	30	30	29	30	0	355 
1971	*/{	5	,	1	,	27	,	19176	},/*	29	30	29	29	30	29	30	29	30	30	30	29	30	384
1972	*/{	0	,	2	,	15	,	19152	},/*	29	30	29	29	30	29	30	29	30	30	29	30	0	354
1973	*/{	0	,	2	,	3	,	42192	},/*	30	29	30	29	29	30	29	29	30	30	29	30	0	354
1974	*/{	4	,	1	,	23	,	53864	},/*	30	30	29	30	29	29	30	29	29	30	30	29	30	384 
1975	*/{	0	,	2	,	11	,	53840	},/*	30	30	29	30	29	29	30	29	29	30	29	30	0	354
1976	*/{	8	,	1	,	31	,	54568	},/*	30	30	29	30	29	30	29	30	29	29	30	29	30	384 
1977	*/{	0	,	2	,	18	,	46400	},/*	30	29	30	30	29	30	29	30	29	30	29	29	0	354 
1978	*/{	0	,	2	,	7	,	46752	},/*	30	29	30	30	29	30	30	29	30	29	30	29	0	355
1979	*/{	6	,	1	,	28	,	38608	},/*	30	29	29	30	29	30	30	29	30	30	29	30	29	384 
1980	*/{	0	,	2	,	16	,	38320	},/*	30	29	29	30	29	30	29	30	30	29	30	30	0	355
1981	*/{	0	,	2	,	5	,	18864	},/*	29	30	29	29	30	29	29	30	30	29	30	30	0	354
1982	*/{	4	,	1	,	25	,	42168	},/*	30	29	30	29	29	30	29	29	30	29	30	30	30	384
1983	*/{	0	,	2	,	13	,	42160	},/*	30	29	30	29	29	30	29	29	30	29	30	30	0	354 
1984	*/{	10	,	2	,	2	,	45656	},/*	30	29	30	30	29	29	30	29	29	30	29	30	30	384
1985	*/{	0	,	2	,	20	,	27216	},/*	29	30	30	29	30	29	30	29	29	30	29	30	0	354 
1986	*/{	0	,	2	,	9	,	27968	},/*	29	30	30	29	30	30	29	30	29	30	29	29	0	354 
1987	*/{	6	,	1	,	29	,	44448	},/*	30	29	30	29	30	30	29	30	30	29	30	29	29	384
1988	*/{	0	,	2	,	17	,	43872	},/*	30	29	30	29	30	29	30	30	29	30	30	29	0	355 
1989	*/{	0	,	2	,	6	,	38256	},/*	30	29	29	30	29	30	29	30	29	30	30	30	0	355
1990	*/{	5	,	1	,	27	,	18808	},/*	29	30	29	29	30	29	29	30	29	30	30	30	30	384
1991	*/{	0	,	2	,	15	,	18800	},/*	29	30	29	29	30	29	29	30	29	30	30	30	0	354
1992	*/{	0	,	2	,	4	,	25776	},/*	29	30	30	29	29	30	29	29	30	29	30	30	0	354 
1993	*/{	3	,	1	,	23	,	27216	},/*	29	30	30	29	30	29	30	29	29	30	29	30	29	383
1994	*/{	0	,	2	,	10	,	59984	},/*	30	30	30	29	30	29	30	29	29	30	29	30	0	355 
1995	*/{	8	,	1	,	31	,	27432	},/*	29	30	30	29	30	29	30	30	29	29	30	29	30	384 
1996	*/{	0	,	2	,	19	,	23232	},/*	29	30	29	30	30	29	30	29	30	30	29	29	0	354
1997	*/{	0	,	2	,	7	,	43872	},/*	30	29	30	29	30	29	30	30	29	30	30	29	0	355 
1998	*/{	5	,	1	,	28	,	37736	},/*	30	29	29	30	29	29	30	30	29	30	30	29	30	384
1999	*/{	0	,	2	,	16	,	37600	},/*	30	29	29	30	29	29	30	29	30	30	30	29	0	354
2000	*/{	0	,	2	,	5	,	51552	},/*	30	30	29	29	30	29	29	30	29	30	30	29	0	354
2001	*/{	4	,	1	,	24	,	54440	},/*	30	30	29	30	29	30	29	29	30	29	30	29	30	384 
2002	*/{	0	,	2	,	12	,	54432	},/*	30	30	29	30	29	30	29	29	30	29	30	29	0	354
2003	*/{	0	,	2	,	1	,	55888	},/*	30	30	29	30	30	29	30	29	29	30	29	30	0	355 
2004	*/{	2	,	1	,	22	,	23208	},/*	29	30	29	30	30	29	30	29	30	29	30	29	30	384 
2005	*/{	0	,	2	,	9	,	22176	},/*	29	30	29	30	29	30	30	29	30	29	30	29	0	354
2006	*/{	7	,	1	,	29	,	43736	},/*	30	29	30	29	30	29	30	29	30	30	29	30	30	385 
2007	*/{	0	,	2	,	18	,	9680	},/*	29	29	30	29	29	30	29	30	30	30	29	30	0	354
2008	*/{	0	,	2	,	7	,	37584	},/*	30	29	29	30	29	29	30	29	30	30	29	30	0	354
2009	*/{	5	,	1	,	26	,	51544	},/*	30	30	29	29	30	29	29	30	29	30	29	30	30	384
2010	*/{	0	,	2	,	14	,	43344	},/*	30	29	30	29	30	29	29	30	29	30	29	30	0	354 
2011	*/{	0	,	2	,	3	,	46240	},/*	30	29	30	30	29	30	29	29	30	29	30	29	0	354
2012	*/{	4	,	1	,	23	,	46416	},/*	30	29	30	30	29	30	29	30	29	30	29	30	29	384 
2013	*/{	0	,	2	,	10	,	44368	},/*	30	29	30	29	30	30	29	30	29	30	29	30	0	355 
2014	*/{	9	,	1	,	31	,	21928	},/*	29	30	29	30	29	30	29	30	30	29	30	29	30	384
2015	*/{	0	,	2	,	19	,	19360	},/*	29	30	29	29	30	29	30	30	30	29	30	29	0	354 
2016	*/{	0	,	2	,	8	,	42416	},/*	30	29	30	29	29	30	29	30	30	29	30	30	0	355
2017	*/{	6	,	1	,	28	,	21176	},/*	29	30	29	30	29	29	30	29	30	29	30	30	30	384
2018	*/{	0	,	2	,	16	,	21168	},/*	29	30	29	30	29	29	30	29	30	29	30	30	0	354
2019	*/{	0	,	2	,	5	,	43312	},/*	30	29	30	29	30	29	29	30	29	29	30	30	0	354 
2020	*/{	4	,	1	,	25	,	29864	},/*	29	30	30	30	29	30	29	29	30	29	30	29	30	384
2021	*/{	0	,	2	,	12	,	27296	},/*	29	30	30	29	30	29	30	29	30	29	30	29	0	354 
2022	*/{	0	,	2	,	1	,	44368	},/*	30	29	30	29	30	30	29	30	29	30	29	30	0	355 
2023	*/{	2	,	1	,	22	,	19880	},/*	29	30	29	29	30	30	29	30	30	29	30	29	30	384
2024	*/{	0	,	2	,	10	,	19296	},/*	29	30	29	29	30	29	30	30	29	30	30	29	0	354 
2025	*/{	6	,	1	,	29	,	42352	},/*	30	29	30	29	29	30	29	30	29	30	30	30	29	384
2026	*/{	0	,	2	,	17	,	42208	},/*	30	29	30	29	29	30	29	29	30	30	30	29	0	354
2027	*/{	0	,	2	,	6	,	53856	},/*	30	30	29	30	29	29	30	29	29	30	30	29	0	354
2028	*/{	5	,	1	,	26	,	59696	},/*	30	30	30	29	30	29	29	30	29	29	30	30	29	384 
2029	*/{	0	,	2	,	13	,	54576	},/*	30	30	29	30	29	30	29	30	29	29	30	30	0	355
2030	*/{	0	,	2	,	3	,	23200	},/*	29	30	29	30	30	29	30	29	30	29	30	29	0	354 
2031	*/{	3	,	1	,	23	,	27472	},/*	29	30	30	29	30	29	30	30	29	30	29	30	29	384 
2032	*/{	0	,	2	,	11	,	38608	},/*	30	29	29	30	29	30	30	29	30	30	29	30	0	355
2033	*/{	11	,	1	,	31	,	19176	},/*	29	30	29	29	30	29	30	29	30	30	30	29	30	384 
2034	*/{	0	,	2	,	19	,	19152	},/*	29	30	29	29	30	29	30	29	30	30	29	30	0	354
2035	*/{	0	,	2	,	8	,	42192	},/*	30	29	30	29	29	30	29	29	30	30	29	30	0	354
2036	*/{	6	,	1	,	28	,	53848	},/*	30	30	29	30	29	29	30	29	29	30	29	30	30	384
2037	*/{	0	,	2	,	15	,	53840	},/*	30	30	29	30	29	29	30	29	29	30	29	30	0	354 
2038	*/{	0	,	2	,	4	,	54560	},/*	30	30	29	30	29	30	29	30	29	29	30	29	0	354
2039	*/{	5	,	1	,	24	,	55968	},/*	30	30	29	30	30	29	30	29	30	29	30	29	29	384 
2040	*/{	0	,	2	,	12	,	46496	},/*	30	29	30	30	29	30	29	30	30	29	30	29	0	355 
2041	*/{	0	,	2	,	1	,	22224	},/*	29	30	29	30	29	30	30	29	30	30	29	30	0	355
2042	*/{	2	,	1	,	22	,	19160	},/*	29	30	29	29	30	29	30	29	30	30	29	30	30	384 
2043	*/{	0	,	2	,	10	,	18864	},/*	29	30	29	29	30	29	29	30	30	29	30	30	0	354
2044	*/{	7	,	1	,	30	,	42168	},/*	30	29	30	29	29	30	29	29	30	29	30	30	30	384
2045	*/{	0	,	2	,	17	,	42160	},/*	30	29	30	29	29	30	29	29	30	29	30	30	0	354
2046	*/{	0	,	2	,	6	,	43600	},/*	30	29	30	29	30	29	30	29	29	30	29	30	0	354 
2047	*/{	5	,	1	,	26	,	46376	},/*	30	29	30	30	29	30	29	30	29	29	30	29	30	384
2048	*/{	0	,	2	,	14	,	27936	},/*	29	30	30	29	30	30	29	30	29	29	30	29	0	354 
2049	*/{	0	,	2	,	2	,	44448	},/*	30	29	30	29	30	30	29	30	30	29	30	29	0	355 
2050	*/{	3	,	1	,	23	,	21936	},/*	29	30	29	30	29	30	29	30	30	29	30	30	29	384
2051	*/{	0	,	2	,	11	,	37744	},/*	30	29	29	30	29	29	30	30	29	30	30	30	0	355 
2052	*/{	8	,	2	,	1	,	18808	},/*	29	30	29	29	30	29	29	30	29	30	30	30	30	384
2053	*/{	0	,	2	,	19	,	18800	},/*	29	30	29	29	30	29	29	30	29	30	30	30	0	354
2054	*/{	0	,	2	,	8	,	25776	},/*	29	30	30	29	29	30	29	29	30	29	30	30	0	354
2055	*/{	6	,	1	,	28	,	27216	},/*	29	30	30	29	30	29	30	29	29	30	29	30	29	383 
2056	*/{	0	,	2	,	15	,	59984	},/*	30	30	30	29	30	29	30	29	29	30	29	30	0	355
2057	*/{	0	,	2	,	4	,	27424	},/*	29	30	30	29	30	29	30	30	29	29	30	29	0	354 
2058	*/{	4	,	1	,	24	,	43872	},/*	30	29	30	29	30	29	30	30	29	30	30	29	29	384 
2059	*/{	0	,	2	,	12	,	43744	},/*	30	29	30	29	30	29	30	29	30	30	30	29	0	355
2060	*/{	0	,	2	,	2	,	37600	},/*	30	29	29	30	29	29	30	29	30	30	30	29	0	354 
2061	*/{	3	,	1	,	21	,	51568	},/*	30	30	29	29	30	29	29	30	29	30	30	30	29	384
2062	*/{	0	,	2	,	9	,	51552	},/*	30	30	29	29	30	29	29	30	29	30	30	29	0	354
2063	*/{	7	,	1	,	29	,	54440	},/*	30	30	29	30	29	30	29	29	30	29	30	29	30	384
2064	*/{	0	,	2	,	17	,	54432	},/*	30	30	29	30	29	30	29	29	30	29	30	29	0	354 
2065	*/{	0	,	2	,	5	,	55888	},/*	30	30	29	30	30	29	30	29	29	30	29	30	0	355
2066	*/{	5	,	1	,	26	,	23208	},/*	29	30	29	30	30	29	30	29	30	29	30	29	30	384 
2067	*/{	0	,	2	,	14	,	22176	},/*	29	30	29	30	29	30	30	29	30	29	30	29	0	354 
2068	*/{	0	,	2	,	3	,	42704	},/*	30	29	30	29	29	30	30	29	30	30	29	30	0	355
2069	*/{	4	,	1	,	23	,	21224	},/*	29	30	29	30	29	29	30	29	30	30	30	29	30	384 
2070	*/{	0	,	2	,	11	,	21200	},/*	29	30	29	30	29	29	30	29	30	30	29	30	0	354
2071	*/{	8	,	1	,	31	,	43352	},/*	30	29	30	29	30	29	29	30	29	30	29	30	30	384
2072	*/{	0	,	2	,	19	,	43344	},/*	30	29	30	29	30	29	29	30	29	30	29	30	0	354
2073	*/{	0	,	2	,	7	,	46240	},/*	30	29	30	30	29	30	29	29	30	29	30	29	0	354 
2074	*/{	6	,	1	,	27	,	46416	},/*	30	29	30	30	29	30	29	30	29	30	29	30	29	384
2075	*/{	0	,	2	,	15	,	44368	},/*	30	29	30	29	30	30	29	30	29	30	29	30	0	355 
2076	*/{	0	,	2	,	5	,	21920	},/*	29	30	29	30	29	30	29	30	30	29	30	29	0	354 
2077	*/{	4	,	1	,	24	,	42448	},/*	30	29	30	29	29	30	29	30	30	30	29	30	29	384
2078	*/{	0	,	2	,	12	,	42416	},/*	30	29	30	29	29	30	29	30	30	29	30	30	0	355 
2079	*/{	0	,	2	,	2	,	21168	},/*	29	30	29	30	29	29	30	29	30	29	30	30	0	354
2080	*/{	3	,	1	,	22	,	43320	},/*	30	29	30	29	30	29	29	30	29	29	30	30	30	384
2081	*/{	0	,	2	,	9	,	26928	},/*	29	30	30	29	30	29	29	30	29	29	30	30	0	354
2082	*/{	7	,	1	,	29	,	29336	},/*	29	30	30	30	29	29	30	29	30	29	29	30	30	384 
2083	*/{	0	,	2	,	17	,	27296	},/*	29	30	30	29	30	29	30	29	30	29	30	29	0	354
2084	*/{	0	,	2	,	6	,	44368	},/*	30	29	30	29	30	30	29	30	29	30	29	30	0	355 
2085	*/{	5	,	1	,	26	,	19880	},/*	29	30	29	29	30	30	29	30	30	29	30	29	30	384 
2086	*/{	0	,	2	,	14	,	19296	},/*	29	30	29	29	30	29	30	30	29	30	30	29	0	354
2087	*/{	0	,	2	,	3	,	42352	},/*	30	29	30	29	29	30	29	30	29	30	30	30	0	355 
2088	*/{	4	,	1	,	24	,	21104	},/*	29	30	29	30	29	29	30	29	29	30	30	30	29	383
2089	*/{	0	,	2	,	10	,	53856	},/*	30	30	29	30	29	29	30	29	29	30	30	29	0	354
2090	*/{	8	,	1	,	30	,	59696	},/*	30	30	30	29	30	29	29	30	29	29	30	30	29	384
2091	*/{	0	,	2	,	18	,	54560	},/*	30	30	29	30	29	30	29	30	29	29	30	29	0	354 
2092	*/{	0	,	2	,	7	,	55968	},/*	30	30	29	30	30	29	30	29	30	29	30	29	0	355
2093	*/{	6	,	1	,	27	,	27472	},/*	29	30	30	29	30	29	30	30	29	30	29	30	29	384 
2094	*/{	0	,	2	,	15	,	22224	},/*	29	30	29	30	29	30	30	29	30	30	29	30	0	355 
2095	*/{	0	,	2	,	5	,	19168	},/*	29	30	29	29	30	29	30	29	30	30	30	29	0	354
2096	*/{	4	,	1	,	25	,	42216	},/*	30	29	30	29	29	30	29	29	30	30	30	29	30	384 
2097	*/{	0	,	2	,	12	,	42192	},/*	30	29	30	29	29	30	29	29	30	30	29	30	0	354
2098	*/{	0	,	2	,	1	,	53584	},/*	30	30	29	30	29	29	29	30	29	30	29	30	0	354
2099	*/{	2	,	1	,	21	,	55592	},/*	30	30	29	30	30	29	29	30	29	29	30	29	30	384
2100	*/{	0	,	2	,	9	,	54560	},/*	30	30	29	30	29	30	29	30	29	29	30	29	0	354 
        */};
 
 
        internal override int MinCalendarYear {
            get 
            {
                return (MIN_LUNISOLAR_YEAR);
            }
        } 

        internal override int MaxCalendarYear { 
            get 
            {
                return (MAX_LUNISOLAR_YEAR); 
            }
        }

        internal override DateTime MinDate { 
            get
            { 
                return (minDate); 
            }
        } 

        internal override DateTime MaxDate {
            get
            { 
                return (maxDate);
            } 
        } 

        internal override EraInfo[] CalEraInfo { 
            get
            {
                return (null);
            } 
        }
 
        internal override int  GetYearInfo(int LunarYear, int Index) { 
            if ((LunarYear < MIN_LUNISOLAR_YEAR) || (LunarYear > MAX_LUNISOLAR_YEAR)) {
                throw new ArgumentOutOfRangeException( 
                            "year",
                            String.Format(
                                CultureInfo.CurrentCulture,
                                Environment.GetResourceString("ArgumentOutOfRange_Range"), MIN_LUNISOLAR_YEAR, MAX_LUNISOLAR_YEAR )); 
            }
 
            return yinfo[LunarYear - MIN_LUNISOLAR_YEAR, Index]; 
        }
 
        internal override int GetYear(int year, DateTime time) {
            return year;
        }
 
        internal override int GetGregorianYear(int year, int era) {
            if (era != CurrentEra && era != ChineseEra) { 
                throw new ArgumentOutOfRangeException("era", Environment.GetResourceString("ArgumentOutOfRange_InvalidEraValue")); 
            }
 
            if (year < MIN_LUNISOLAR_YEAR || year > MAX_LUNISOLAR_YEAR) {
                throw new ArgumentOutOfRangeException(
                            "year",
                            String.Format( 
                                CultureInfo.CurrentCulture,
                                Environment.GetResourceString("ArgumentOutOfRange_Range"), MIN_LUNISOLAR_YEAR, MAX_LUNISOLAR_YEAR)); 
            } 

            return year; 
        }


        /*=================================GetDefaultInstance========================== 
        **Action: Internal method to provide a default intance of ChineseLunisolarCalendar.  Used by NLS+ implementation
        **       and other calendars. 
        **Returns: 
        **Arguments:
        **Exceptions: 
        ============================================================================*/

        /*
        internal static Calendar GetDefaultInstance() 
        {
            if (m_defaultInstance == null) { 
                m_defaultInstance = new ChineseLunisolarCalendar(); 
            }
            return (m_defaultInstance); 
        }
        */

        // Construct an instance of ChineseLunisolar calendar. 

        public ChineseLunisolarCalendar() { 
        } 

 
        [System.Runtime.InteropServices.ComVisible(false)]
        public override int GetEra(DateTime time) {
            CheckTicksRange(time.Ticks);
            return (ChineseEra); 
        }
 
        internal override int ID { 
            get {
                return (CAL_CHINESELUNISOLAR); 
            }
        }

        internal override int BaseCalendarID { 
            get {
                //Use CAL_GREGORIAN just to get CurrentEraValue as 1 since we do not have data under the ID CAL_ChineseLunisolar yet 
                return (CAL_GREGORIAN); 
            }
        } 


        [System.Runtime.InteropServices.ComVisible(false)]
        public override int[] Eras { 
            get {
                return (new int[] {ChineseEra}); 
            } 
        }
    } 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// ==++== 
//
//   Copyright (c) Microsoft Corporation.  All rights reserved.
//
// ==--== 
namespace System.Globalization {
    using System; 
 
    ////////////////////////////////////////////////////////////////////////////
    // 
    //  Notes about ChineseLunisolarCalendar
    //
    ////////////////////////////////////////////////////////////////////////////
     /* 
     **  Calendar support range:
     **      Calendar       		Minimum     		Maximum 
     **      ==========     ==========  ========== 
     **      Gregorian      		1901/02/19  		2101/01/28
     **      ChineseLunisolar   1901/01/01  		2100/12/29 
     */

    [Serializable]
    public class ChineseLunisolarCalendar : EastAsianLunisolarCalendar { 

 
        // 
        // The era value for the current era.
        // 

        public const int ChineseEra = 1;
        //internal static Calendar m_defaultInstance;
 
        internal const int MIN_LUNISOLAR_YEAR = 1901;
        internal const int MAX_LUNISOLAR_YEAR = 2100; 
 
        internal const int MIN_GREGORIAN_YEAR = 1901;
        internal const int MIN_GREGORIAN_MONTH = 2; 
        internal const int MIN_GREGORIAN_DAY = 19;

        internal const int MAX_GREGORIAN_YEAR = 2101;
        internal const int MAX_GREGORIAN_MONTH = 1; 
        internal const int MAX_GREGORIAN_DAY = 28;
 
        internal static DateTime minDate = new DateTime(MIN_GREGORIAN_YEAR, MIN_GREGORIAN_MONTH, MIN_GREGORIAN_DAY); 
        internal static DateTime maxDate = new DateTime((new DateTime(MAX_GREGORIAN_YEAR, MAX_GREGORIAN_MONTH, MAX_GREGORIAN_DAY, 23, 59, 59, 999)).Ticks + 9999);
 
        [System.Runtime.InteropServices.ComVisible(false)]
        public override DateTime MinSupportedDateTime  {
            get
            { 
                return (minDate);
            } 
        } 

 
        [System.Runtime.InteropServices.ComVisible(false)]
        public override DateTime MaxSupportedDateTime {
            get
            { 
                return (maxDate);
            } 
        } 

        static readonly int  [,] yinfo = 
        {
 /*Y			LM		Lmon	Lday		DaysPerMonth	D1	D2	D3	D4	D5	D6	D7	D8	D9	D10	D11	D12	D13	#Days
1901	*/{	0	,	2	,	19	,	19168	},/*	29	30	29	29	30	29	30	29	30	30	30	29	0	354
1902	*/{	0	,	2	,	8	,	42352	},/*	30	29	30	29	29	30	29	30	29	30	30	30	0	355 
1903	*/{	5	,	1	,	29	,	21096	},/*	29	30	29	30	29	29	30	29	29	30	30	29	30	383
1904	*/{	0	,	2	,	16	,	53856	},/*	30	30	29	30	29	29	30	29	29	30	30	29	0	354 
1905	*/{	0	,	2	,	4	,	55632	},/*	30	30	29	30	30	29	29	30	29	30	29	30	0	355 
1906	*/{	4	,	1	,	25	,	27304	},/*	29	30	30	29	30	29	30	29	30	29	30	29	30	384
1907	*/{	0	,	2	,	13	,	22176	},/*	29	30	29	30	29	30	30	29	30	29	30	29	0	354 
1908	*/{	0	,	2	,	2	,	39632	},/*	30	29	29	30	30	29	30	29	30	30	29	30	0	355
1909	*/{	2	,	1	,	22	,	19176	},/*	29	30	29	29	30	29	30	29	30	30	30	29	30	384
1910	*/{	0	,	2	,	10	,	19168	},/*	29	30	29	29	30	29	30	29	30	30	30	29	0	354
1911	*/{	6	,	1	,	30	,	42200	},/*	30	29	30	29	29	30	29	29	30	30	29	30	30	384 
1912	*/{	0	,	2	,	18	,	42192	},/*	30	29	30	29	29	30	29	29	30	30	29	30	0	354
1913	*/{	0	,	2	,	6	,	53840	},/*	30	30	29	30	29	29	30	29	29	30	29	30	0	354 
1914	*/{	5	,	1	,	26	,	54568	},/*	30	30	29	30	29	30	29	30	29	29	30	29	30	384 
1915	*/{	0	,	2	,	14	,	46400	},/*	30	29	30	30	29	30	29	30	29	30	29	29	0	354
1916	*/{	0	,	2	,	3	,	54944	},/*	30	30	29	30	29	30	30	29	30	29	30	29	0	355 
1917	*/{	2	,	1	,	23	,	38608	},/*	30	29	29	30	29	30	30	29	30	30	29	30	29	384
1918	*/{	0	,	2	,	11	,	38320	},/*	30	29	29	30	29	30	29	30	30	29	30	30	0	355
1919	*/{	7	,	2	,	1	,	18872	},/*	29	30	29	29	30	29	29	30	30	29	30	30	30	384
1920	*/{	0	,	2	,	20	,	18800	},/*	29	30	29	29	30	29	29	30	29	30	30	30	0	354 
1921	*/{	0	,	2	,	8	,	42160	},/*	30	29	30	29	29	30	29	29	30	29	30	30	0	354
1922	*/{	5	,	1	,	28	,	45656	},/*	30	29	30	30	29	29	30	29	29	30	29	30	30	384 
1923	*/{	0	,	2	,	16	,	27216	},/*	29	30	30	29	30	29	30	29	29	30	29	30	0	354 
1924	*/{	0	,	2	,	5	,	27968	},/*	29	30	30	29	30	30	29	30	29	30	29	29	0	354
1925	*/{	4	,	1	,	24	,	44456	},/*	30	29	30	29	30	30	29	30	30	29	30	29	30	385 
1926	*/{	0	,	2	,	13	,	11104	},/*	29	29	30	29	30	29	30	30	29	30	30	29	0	354
1927	*/{	0	,	2	,	2	,	38256	},/*	30	29	29	30	29	30	29	30	29	30	30	30	0	355
1928	*/{	2	,	1	,	23	,	18808	},/*	29	30	29	29	30	29	29	30	29	30	30	30	30	384
1929	*/{	0	,	2	,	10	,	18800	},/*	29	30	29	29	30	29	29	30	29	30	30	30	0	354 
1930	*/{	6	,	1	,	30	,	25776	},/*	29	30	30	29	29	30	29	29	30	29	30	30	29	383
1931	*/{	0	,	2	,	17	,	54432	},/*	30	30	29	30	29	30	29	29	30	29	30	29	0	354 
1932	*/{	0	,	2	,	6	,	59984	},/*	30	30	30	29	30	29	30	29	29	30	29	30	0	355 
1933	*/{	5	,	1	,	26	,	27976	},/*	29	30	30	29	30	30	29	30	29	30	29	29	30	384
1934	*/{	0	,	2	,	14	,	23248	},/*	29	30	29	30	30	29	30	29	30	30	29	30	0	355 
1935	*/{	0	,	2	,	4	,	11104	},/*	29	29	30	29	30	29	30	30	29	30	30	29	0	354
1936	*/{	3	,	1	,	24	,	37744	},/*	30	29	29	30	29	29	30	30	29	30	30	30	29	384
1937	*/{	0	,	2	,	11	,	37600	},/*	30	29	29	30	29	29	30	29	30	30	30	29	0	354
1938	*/{	7	,	1	,	31	,	51560	},/*	30	30	29	29	30	29	29	30	29	30	30	29	30	384 
1939	*/{	0	,	2	,	19	,	51536	},/*	30	30	29	29	30	29	29	30	29	30	29	30	0	354
1940	*/{	0	,	2	,	8	,	54432	},/*	30	30	29	30	29	30	29	29	30	29	30	29	0	354 
1941	*/{	6	,	1	,	27	,	55888	},/*	30	30	29	30	30	29	30	29	29	30	29	30	29	384 
1942	*/{	0	,	2	,	15	,	46416	},/*	30	29	30	30	29	30	29	30	29	30	29	30	0	355
1943	*/{	0	,	2	,	5	,	22176	},/*	29	30	29	30	29	30	30	29	30	29	30	29	0	354 
1944	*/{	4	,	1	,	25	,	43736	},/*	30	29	30	29	30	29	30	29	30	30	29	30	30	385
1945	*/{	0	,	2	,	13	,	9680	},/*	29	29	30	29	29	30	29	30	30	30	29	30	0	354
1946	*/{	0	,	2	,	2	,	37584	},/*	30	29	29	30	29	29	30	29	30	30	29	30	0	354
1947	*/{	2	,	1	,	22	,	51544	},/*	30	30	29	29	30	29	29	30	29	30	29	30	30	384 
1948	*/{	0	,	2	,	10	,	43344	},/*	30	29	30	29	30	29	29	30	29	30	29	30	0	354
1949	*/{	7	,	1	,	29	,	46248	},/*	30	29	30	30	29	30	29	29	30	29	30	29	30	384 
1950	*/{	0	,	2	,	17	,	27808	},/*	29	30	30	29	30	30	29	29	30	29	30	29	0	354 
1951	*/{	0	,	2	,	6	,	46416	},/*	30	29	30	30	29	30	29	30	29	30	29	30	0	355
1952	*/{	5	,	1	,	27	,	21928	},/*	29	30	29	30	29	30	29	30	30	29	30	29	30	384 
1953	*/{	0	,	2	,	14	,	19872	},/*	29	30	29	29	30	30	29	30	30	29	30	29	0	354
1954	*/{	0	,	2	,	3	,	42416	},/*	30	29	30	29	29	30	29	30	30	29	30	30	0	355
1955	*/{	3	,	1	,	24	,	21176	},/*	29	30	29	30	29	29	30	29	30	29	30	30	30	384
1956	*/{	0	,	2	,	12	,	21168	},/*	29	30	29	30	29	29	30	29	30	29	30	30	0	354 
1957	*/{	8	,	1	,	31	,	43344	},/*	30	29	30	29	30	29	29	30	29	30	29	30	29	383
1958	*/{	0	,	2	,	18	,	59728	},/*	30	30	30	29	30	29	29	30	29	30	29	30	0	355 
1959	*/{	0	,	2	,	8	,	27296	},/*	29	30	30	29	30	29	30	29	30	29	30	29	0	354 
1960	*/{	6	,	1	,	28	,	44368	},/*	30	29	30	29	30	30	29	30	29	30	29	30	29	384
1961	*/{	0	,	2	,	15	,	43856	},/*	30	29	30	29	30	29	30	30	29	30	29	30	0	355 
1962	*/{	0	,	2	,	5	,	19296	},/*	29	30	29	29	30	29	30	30	29	30	30	29	0	354
1963	*/{	4	,	1	,	25	,	42352	},/*	30	29	30	29	29	30	29	30	29	30	30	30	29	384
1964	*/{	0	,	2	,	13	,	42352	},/*	30	29	30	29	29	30	29	30	29	30	30	30	0	355
1965	*/{	0	,	2	,	2	,	21088	},/*	29	30	29	30	29	29	30	29	29	30	30	29	0	353 
1966	*/{	3	,	1	,	21	,	59696	},/*	30	30	30	29	30	29	29	30	29	29	30	30	29	384
1967	*/{	0	,	2	,	9	,	55632	},/*	30	30	29	30	30	29	29	30	29	30	29	30	0	355 
1968	*/{	7	,	1	,	30	,	23208	},/*	29	30	29	30	30	29	30	29	30	29	30	29	30	384 
1969	*/{	0	,	2	,	17	,	22176	},/*	29	30	29	30	29	30	30	29	30	29	30	29	0	354
1970	*/{	0	,	2	,	6	,	38608	},/*	30	29	29	30	29	30	30	29	30	30	29	30	0	355 
1971	*/{	5	,	1	,	27	,	19176	},/*	29	30	29	29	30	29	30	29	30	30	30	29	30	384
1972	*/{	0	,	2	,	15	,	19152	},/*	29	30	29	29	30	29	30	29	30	30	29	30	0	354
1973	*/{	0	,	2	,	3	,	42192	},/*	30	29	30	29	29	30	29	29	30	30	29	30	0	354
1974	*/{	4	,	1	,	23	,	53864	},/*	30	30	29	30	29	29	30	29	29	30	30	29	30	384 
1975	*/{	0	,	2	,	11	,	53840	},/*	30	30	29	30	29	29	30	29	29	30	29	30	0	354
1976	*/{	8	,	1	,	31	,	54568	},/*	30	30	29	30	29	30	29	30	29	29	30	29	30	384 
1977	*/{	0	,	2	,	18	,	46400	},/*	30	29	30	30	29	30	29	30	29	30	29	29	0	354 
1978	*/{	0	,	2	,	7	,	46752	},/*	30	29	30	30	29	30	30	29	30	29	30	29	0	355
1979	*/{	6	,	1	,	28	,	38608	},/*	30	29	29	30	29	30	30	29	30	30	29	30	29	384 
1980	*/{	0	,	2	,	16	,	38320	},/*	30	29	29	30	29	30	29	30	30	29	30	30	0	355
1981	*/{	0	,	2	,	5	,	18864	},/*	29	30	29	29	30	29	29	30	30	29	30	30	0	354
1982	*/{	4	,	1	,	25	,	42168	},/*	30	29	30	29	29	30	29	29	30	29	30	30	30	384
1983	*/{	0	,	2	,	13	,	42160	},/*	30	29	30	29	29	30	29	29	30	29	30	30	0	354 
1984	*/{	10	,	2	,	2	,	45656	},/*	30	29	30	30	29	29	30	29	29	30	29	30	30	384
1985	*/{	0	,	2	,	20	,	27216	},/*	29	30	30	29	30	29	30	29	29	30	29	30	0	354 
1986	*/{	0	,	2	,	9	,	27968	},/*	29	30	30	29	30	30	29	30	29	30	29	29	0	354 
1987	*/{	6	,	1	,	29	,	44448	},/*	30	29	30	29	30	30	29	30	30	29	30	29	29	384
1988	*/{	0	,	2	,	17	,	43872	},/*	30	29	30	29	30	29	30	30	29	30	30	29	0	355 
1989	*/{	0	,	2	,	6	,	38256	},/*	30	29	29	30	29	30	29	30	29	30	30	30	0	355
1990	*/{	5	,	1	,	27	,	18808	},/*	29	30	29	29	30	29	29	30	29	30	30	30	30	384
1991	*/{	0	,	2	,	15	,	18800	},/*	29	30	29	29	30	29	29	30	29	30	30	30	0	354
1992	*/{	0	,	2	,	4	,	25776	},/*	29	30	30	29	29	30	29	29	30	29	30	30	0	354 
1993	*/{	3	,	1	,	23	,	27216	},/*	29	30	30	29	30	29	30	29	29	30	29	30	29	383
1994	*/{	0	,	2	,	10	,	59984	},/*	30	30	30	29	30	29	30	29	29	30	29	30	0	355 
1995	*/{	8	,	1	,	31	,	27432	},/*	29	30	30	29	30	29	30	30	29	29	30	29	30	384 
1996	*/{	0	,	2	,	19	,	23232	},/*	29	30	29	30	30	29	30	29	30	30	29	29	0	354
1997	*/{	0	,	2	,	7	,	43872	},/*	30	29	30	29	30	29	30	30	29	30	30	29	0	355 
1998	*/{	5	,	1	,	28	,	37736	},/*	30	29	29	30	29	29	30	30	29	30	30	29	30	384
1999	*/{	0	,	2	,	16	,	37600	},/*	30	29	29	30	29	29	30	29	30	30	30	29	0	354
2000	*/{	0	,	2	,	5	,	51552	},/*	30	30	29	29	30	29	29	30	29	30	30	29	0	354
2001	*/{	4	,	1	,	24	,	54440	},/*	30	30	29	30	29	30	29	29	30	29	30	29	30	384 
2002	*/{	0	,	2	,	12	,	54432	},/*	30	30	29	30	29	30	29	29	30	29	30	29	0	354
2003	*/{	0	,	2	,	1	,	55888	},/*	30	30	29	30	30	29	30	29	29	30	29	30	0	355 
2004	*/{	2	,	1	,	22	,	23208	},/*	29	30	29	30	30	29	30	29	30	29	30	29	30	384 
2005	*/{	0	,	2	,	9	,	22176	},/*	29	30	29	30	29	30	30	29	30	29	30	29	0	354
2006	*/{	7	,	1	,	29	,	43736	},/*	30	29	30	29	30	29	30	29	30	30	29	30	30	385 
2007	*/{	0	,	2	,	18	,	9680	},/*	29	29	30	29	29	30	29	30	30	30	29	30	0	354
2008	*/{	0	,	2	,	7	,	37584	},/*	30	29	29	30	29	29	30	29	30	30	29	30	0	354
2009	*/{	5	,	1	,	26	,	51544	},/*	30	30	29	29	30	29	29	30	29	30	29	30	30	384
2010	*/{	0	,	2	,	14	,	43344	},/*	30	29	30	29	30	29	29	30	29	30	29	30	0	354 
2011	*/{	0	,	2	,	3	,	46240	},/*	30	29	30	30	29	30	29	29	30	29	30	29	0	354
2012	*/{	4	,	1	,	23	,	46416	},/*	30	29	30	30	29	30	29	30	29	30	29	30	29	384 
2013	*/{	0	,	2	,	10	,	44368	},/*	30	29	30	29	30	30	29	30	29	30	29	30	0	355 
2014	*/{	9	,	1	,	31	,	21928	},/*	29	30	29	30	29	30	29	30	30	29	30	29	30	384
2015	*/{	0	,	2	,	19	,	19360	},/*	29	30	29	29	30	29	30	30	30	29	30	29	0	354 
2016	*/{	0	,	2	,	8	,	42416	},/*	30	29	30	29	29	30	29	30	30	29	30	30	0	355
2017	*/{	6	,	1	,	28	,	21176	},/*	29	30	29	30	29	29	30	29	30	29	30	30	30	384
2018	*/{	0	,	2	,	16	,	21168	},/*	29	30	29	30	29	29	30	29	30	29	30	30	0	354
2019	*/{	0	,	2	,	5	,	43312	},/*	30	29	30	29	30	29	29	30	29	29	30	30	0	354 
2020	*/{	4	,	1	,	25	,	29864	},/*	29	30	30	30	29	30	29	29	30	29	30	29	30	384
2021	*/{	0	,	2	,	12	,	27296	},/*	29	30	30	29	30	29	30	29	30	29	30	29	0	354 
2022	*/{	0	,	2	,	1	,	44368	},/*	30	29	30	29	30	30	29	30	29	30	29	30	0	355 
2023	*/{	2	,	1	,	22	,	19880	},/*	29	30	29	29	30	30	29	30	30	29	30	29	30	384
2024	*/{	0	,	2	,	10	,	19296	},/*	29	30	29	29	30	29	30	30	29	30	30	29	0	354 
2025	*/{	6	,	1	,	29	,	42352	},/*	30	29	30	29	29	30	29	30	29	30	30	30	29	384
2026	*/{	0	,	2	,	17	,	42208	},/*	30	29	30	29	29	30	29	29	30	30	30	29	0	354
2027	*/{	0	,	2	,	6	,	53856	},/*	30	30	29	30	29	29	30	29	29	30	30	29	0	354
2028	*/{	5	,	1	,	26	,	59696	},/*	30	30	30	29	30	29	29	30	29	29	30	30	29	384 
2029	*/{	0	,	2	,	13	,	54576	},/*	30	30	29	30	29	30	29	30	29	29	30	30	0	355
2030	*/{	0	,	2	,	3	,	23200	},/*	29	30	29	30	30	29	30	29	30	29	30	29	0	354 
2031	*/{	3	,	1	,	23	,	27472	},/*	29	30	30	29	30	29	30	30	29	30	29	30	29	384 
2032	*/{	0	,	2	,	11	,	38608	},/*	30	29	29	30	29	30	30	29	30	30	29	30	0	355
2033	*/{	11	,	1	,	31	,	19176	},/*	29	30	29	29	30	29	30	29	30	30	30	29	30	384 
2034	*/{	0	,	2	,	19	,	19152	},/*	29	30	29	29	30	29	30	29	30	30	29	30	0	354
2035	*/{	0	,	2	,	8	,	42192	},/*	30	29	30	29	29	30	29	29	30	30	29	30	0	354
2036	*/{	6	,	1	,	28	,	53848	},/*	30	30	29	30	29	29	30	29	29	30	29	30	30	384
2037	*/{	0	,	2	,	15	,	53840	},/*	30	30	29	30	29	29	30	29	29	30	29	30	0	354 
2038	*/{	0	,	2	,	4	,	54560	},/*	30	30	29	30	29	30	29	30	29	29	30	29	0	354
2039	*/{	5	,	1	,	24	,	55968	},/*	30	30	29	30	30	29	30	29	30	29	30	29	29	384 
2040	*/{	0	,	2	,	12	,	46496	},/*	30	29	30	30	29	30	29	30	30	29	30	29	0	355 
2041	*/{	0	,	2	,	1	,	22224	},/*	29	30	29	30	29	30	30	29	30	30	29	30	0	355
2042	*/{	2	,	1	,	22	,	19160	},/*	29	30	29	29	30	29	30	29	30	30	29	30	30	384 
2043	*/{	0	,	2	,	10	,	18864	},/*	29	30	29	29	30	29	29	30	30	29	30	30	0	354
2044	*/{	7	,	1	,	30	,	42168	},/*	30	29	30	29	29	30	29	29	30	29	30	30	30	384
2045	*/{	0	,	2	,	17	,	42160	},/*	30	29	30	29	29	30	29	29	30	29	30	30	0	354
2046	*/{	0	,	2	,	6	,	43600	},/*	30	29	30	29	30	29	30	29	29	30	29	30	0	354 
2047	*/{	5	,	1	,	26	,	46376	},/*	30	29	30	30	29	30	29	30	29	29	30	29	30	384
2048	*/{	0	,	2	,	14	,	27936	},/*	29	30	30	29	30	30	29	30	29	29	30	29	0	354 
2049	*/{	0	,	2	,	2	,	44448	},/*	30	29	30	29	30	30	29	30	30	29	30	29	0	355 
2050	*/{	3	,	1	,	23	,	21936	},/*	29	30	29	30	29	30	29	30	30	29	30	30	29	384
2051	*/{	0	,	2	,	11	,	37744	},/*	30	29	29	30	29	29	30	30	29	30	30	30	0	355 
2052	*/{	8	,	2	,	1	,	18808	},/*	29	30	29	29	30	29	29	30	29	30	30	30	30	384
2053	*/{	0	,	2	,	19	,	18800	},/*	29	30	29	29	30	29	29	30	29	30	30	30	0	354
2054	*/{	0	,	2	,	8	,	25776	},/*	29	30	30	29	29	30	29	29	30	29	30	30	0	354
2055	*/{	6	,	1	,	28	,	27216	},/*	29	30	30	29	30	29	30	29	29	30	29	30	29	383 
2056	*/{	0	,	2	,	15	,	59984	},/*	30	30	30	29	30	29	30	29	29	30	29	30	0	355
2057	*/{	0	,	2	,	4	,	27424	},/*	29	30	30	29	30	29	30	30	29	29	30	29	0	354 
2058	*/{	4	,	1	,	24	,	43872	},/*	30	29	30	29	30	29	30	30	29	30	30	29	29	384 
2059	*/{	0	,	2	,	12	,	43744	},/*	30	29	30	29	30	29	30	29	30	30	30	29	0	355
2060	*/{	0	,	2	,	2	,	37600	},/*	30	29	29	30	29	29	30	29	30	30	30	29	0	354 
2061	*/{	3	,	1	,	21	,	51568	},/*	30	30	29	29	30	29	29	30	29	30	30	30	29	384
2062	*/{	0	,	2	,	9	,	51552	},/*	30	30	29	29	30	29	29	30	29	30	30	29	0	354
2063	*/{	7	,	1	,	29	,	54440	},/*	30	30	29	30	29	30	29	29	30	29	30	29	30	384
2064	*/{	0	,	2	,	17	,	54432	},/*	30	30	29	30	29	30	29	29	30	29	30	29	0	354 
2065	*/{	0	,	2	,	5	,	55888	},/*	30	30	29	30	30	29	30	29	29	30	29	30	0	355
2066	*/{	5	,	1	,	26	,	23208	},/*	29	30	29	30	30	29	30	29	30	29	30	29	30	384 
2067	*/{	0	,	2	,	14	,	22176	},/*	29	30	29	30	29	30	30	29	30	29	30	29	0	354 
2068	*/{	0	,	2	,	3	,	42704	},/*	30	29	30	29	29	30	30	29	30	30	29	30	0	355
2069	*/{	4	,	1	,	23	,	21224	},/*	29	30	29	30	29	29	30	29	30	30	30	29	30	384 
2070	*/{	0	,	2	,	11	,	21200	},/*	29	30	29	30	29	29	30	29	30	30	29	30	0	354
2071	*/{	8	,	1	,	31	,	43352	},/*	30	29	30	29	30	29	29	30	29	30	29	30	30	384
2072	*/{	0	,	2	,	19	,	43344	},/*	30	29	30	29	30	29	29	30	29	30	29	30	0	354
2073	*/{	0	,	2	,	7	,	46240	},/*	30	29	30	30	29	30	29	29	30	29	30	29	0	354 
2074	*/{	6	,	1	,	27	,	46416	},/*	30	29	30	30	29	30	29	30	29	30	29	30	29	384
2075	*/{	0	,	2	,	15	,	44368	},/*	30	29	30	29	30	30	29	30	29	30	29	30	0	355 
2076	*/{	0	,	2	,	5	,	21920	},/*	29	30	29	30	29	30	29	30	30	29	30	29	0	354 
2077	*/{	4	,	1	,	24	,	42448	},/*	30	29	30	29	29	30	29	30	30	30	29	30	29	384
2078	*/{	0	,	2	,	12	,	42416	},/*	30	29	30	29	29	30	29	30	30	29	30	30	0	355 
2079	*/{	0	,	2	,	2	,	21168	},/*	29	30	29	30	29	29	30	29	30	29	30	30	0	354
2080	*/{	3	,	1	,	22	,	43320	},/*	30	29	30	29	30	29	29	30	29	29	30	30	30	384
2081	*/{	0	,	2	,	9	,	26928	},/*	29	30	30	29	30	29	29	30	29	29	30	30	0	354
2082	*/{	7	,	1	,	29	,	29336	},/*	29	30	30	30	29	29	30	29	30	29	29	30	30	384 
2083	*/{	0	,	2	,	17	,	27296	},/*	29	30	30	29	30	29	30	29	30	29	30	29	0	354
2084	*/{	0	,	2	,	6	,	44368	},/*	30	29	30	29	30	30	29	30	29	30	29	30	0	355 
2085	*/{	5	,	1	,	26	,	19880	},/*	29	30	29	29	30	30	29	30	30	29	30	29	30	384 
2086	*/{	0	,	2	,	14	,	19296	},/*	29	30	29	29	30	29	30	30	29	30	30	29	0	354
2087	*/{	0	,	2	,	3	,	42352	},/*	30	29	30	29	29	30	29	30	29	30	30	30	0	355 
2088	*/{	4	,	1	,	24	,	21104	},/*	29	30	29	30	29	29	30	29	29	30	30	30	29	383
2089	*/{	0	,	2	,	10	,	53856	},/*	30	30	29	30	29	29	30	29	29	30	30	29	0	354
2090	*/{	8	,	1	,	30	,	59696	},/*	30	30	30	29	30	29	29	30	29	29	30	30	29	384
2091	*/{	0	,	2	,	18	,	54560	},/*	30	30	29	30	29	30	29	30	29	29	30	29	0	354 
2092	*/{	0	,	2	,	7	,	55968	},/*	30	30	29	30	30	29	30	29	30	29	30	29	0	355
2093	*/{	6	,	1	,	27	,	27472	},/*	29	30	30	29	30	29	30	30	29	30	29	30	29	384 
2094	*/{	0	,	2	,	15	,	22224	},/*	29	30	29	30	29	30	30	29	30	30	29	30	0	355 
2095	*/{	0	,	2	,	5	,	19168	},/*	29	30	29	29	30	29	30	29	30	30	30	29	0	354
2096	*/{	4	,	1	,	25	,	42216	},/*	30	29	30	29	29	30	29	29	30	30	30	29	30	384 
2097	*/{	0	,	2	,	12	,	42192	},/*	30	29	30	29	29	30	29	29	30	30	29	30	0	354
2098	*/{	0	,	2	,	1	,	53584	},/*	30	30	29	30	29	29	29	30	29	30	29	30	0	354
2099	*/{	2	,	1	,	21	,	55592	},/*	30	30	29	30	30	29	29	30	29	29	30	29	30	384
2100	*/{	0	,	2	,	9	,	54560	},/*	30	30	29	30	29	30	29	30	29	29	30	29	0	354 
        */};
 
 
        internal override int MinCalendarYear {
            get 
            {
                return (MIN_LUNISOLAR_YEAR);
            }
        } 

        internal override int MaxCalendarYear { 
            get 
            {
                return (MAX_LUNISOLAR_YEAR); 
            }
        }

        internal override DateTime MinDate { 
            get
            { 
                return (minDate); 
            }
        } 

        internal override DateTime MaxDate {
            get
            { 
                return (maxDate);
            } 
        } 

        internal override EraInfo[] CalEraInfo { 
            get
            {
                return (null);
            } 
        }
 
        internal override int  GetYearInfo(int LunarYear, int Index) { 
            if ((LunarYear < MIN_LUNISOLAR_YEAR) || (LunarYear > MAX_LUNISOLAR_YEAR)) {
                throw new ArgumentOutOfRangeException( 
                            "year",
                            String.Format(
                                CultureInfo.CurrentCulture,
                                Environment.GetResourceString("ArgumentOutOfRange_Range"), MIN_LUNISOLAR_YEAR, MAX_LUNISOLAR_YEAR )); 
            }
 
            return yinfo[LunarYear - MIN_LUNISOLAR_YEAR, Index]; 
        }
 
        internal override int GetYear(int year, DateTime time) {
            return year;
        }
 
        internal override int GetGregorianYear(int year, int era) {
            if (era != CurrentEra && era != ChineseEra) { 
                throw new ArgumentOutOfRangeException("era", Environment.GetResourceString("ArgumentOutOfRange_InvalidEraValue")); 
            }
 
            if (year < MIN_LUNISOLAR_YEAR || year > MAX_LUNISOLAR_YEAR) {
                throw new ArgumentOutOfRangeException(
                            "year",
                            String.Format( 
                                CultureInfo.CurrentCulture,
                                Environment.GetResourceString("ArgumentOutOfRange_Range"), MIN_LUNISOLAR_YEAR, MAX_LUNISOLAR_YEAR)); 
            } 

            return year; 
        }


        /*=================================GetDefaultInstance========================== 
        **Action: Internal method to provide a default intance of ChineseLunisolarCalendar.  Used by NLS+ implementation
        **       and other calendars. 
        **Returns: 
        **Arguments:
        **Exceptions: 
        ============================================================================*/

        /*
        internal static Calendar GetDefaultInstance() 
        {
            if (m_defaultInstance == null) { 
                m_defaultInstance = new ChineseLunisolarCalendar(); 
            }
            return (m_defaultInstance); 
        }
        */

        // Construct an instance of ChineseLunisolar calendar. 

        public ChineseLunisolarCalendar() { 
        } 

 
        [System.Runtime.InteropServices.ComVisible(false)]
        public override int GetEra(DateTime time) {
            CheckTicksRange(time.Ticks);
            return (ChineseEra); 
        }
 
        internal override int ID { 
            get {
                return (CAL_CHINESELUNISOLAR); 
            }
        }

        internal override int BaseCalendarID { 
            get {
                //Use CAL_GREGORIAN just to get CurrentEraValue as 1 since we do not have data under the ID CAL_ChineseLunisolar yet 
                return (CAL_GREGORIAN); 
            }
        } 


        [System.Runtime.InteropServices.ComVisible(false)]
        public override int[] Eras { 
            get {
                return (new int[] {ChineseEra}); 
            } 
        }
    } 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK