예제 #1
0
        void AddNumberIntoMatrix(DateTime date)
        {
            ClearMatrix();
            DateTime useDate     = new DateTime(date.Year, date.Month, 1);
            int      firstcolumn = DateOfWeek.IndexOf(useDate.DayOfWeek.ToString());

            LunnarSample.LunnarCalendar lunnarCalendar = new LunnarSample.LunnarCalendar();
            int line   = 0;
            int column = 0;
            int num    = 0;

            if (firstcolumn != 0)
            {
                if (date.Month == 1)
                {
                    useDate = new DateTime(date.Year - 1, 12, 31 - firstcolumn + 1);
                }
                else
                {
                    useDate = new DateTime(date.Year, date.Month - 1, DayOfMonth(new DateTime(date.Year, date.Month - 1, 1)) - firstcolumn + 1);
                }
                for (int i = 0; i < firstcolumn; i++)
                {
                    LuniSolarDate <VietnameseLocalInfoProvider> lunnardate = LuniSolarCalendar <VietnameseLocalInfoProvider> .LuniSolarDateFromSolarDate(useDate);

                    column = DateOfWeek.IndexOf(useDate.DayOfWeek.ToString());
                    CustomButton btn = Matrix[line][column];
                    btn.TextColor            = Color.DarkGray;
                    btn.Horizontal_Alignment = StringAlignment.Near;
                    btn.ButtonText           = useDate.Day.ToString();
                    btn.SLunnarDay           = lunnardate.Day;
                    btn.SLunnarMonth         = lunnardate.Month;
                    btn.ZodiacDay            = lunnarCalendar.IsZodiacDay(useDate, lunnardate.Month);
                    btn.LunnarDayColor       = Color.DarkGray;
                    btn.Click += PreviousBttn_Click;
                    useDate    = useDate.AddDays(1);
                    MatrixColor[line][column] = btn.BackColor;
                    num++;
                }
            }
            useDate = new DateTime(date.Year, date.Month, 1);
            for (int i = 1; i <= DayOfMonth(date); i++)
            {
                column = DateOfWeek.IndexOf(useDate.DayOfWeek.ToString());
                LuniSolarDate <VietnameseLocalInfoProvider> lunnardate = LuniSolarCalendar <VietnameseLocalInfoProvider> .LuniSolarDateFromSolarDate(useDate);

                CustomButton btn = Matrix[line][column];

                //btn.BackColor = Color.PaleTurquoise;
                btn.Horizontal_Alignment = StringAlignment.Near;
                btn.ButtonText           = i.ToString();
                btn.SLunnarDay           = lunnardate.Day;
                btn.SLunnarMonth         = lunnardate.Month;
                btn.ZodiacDay            = lunnarCalendar.IsZodiacDay(useDate, lunnardate.Month);
                btn.LunnarDayColor       = Color.Red;
                btn.Click += ButtonNum_Click;

                if (IsEqualDate(useDate, DateTime.Now))
                {
                    btn.TextColor = Color.Aqua;
                }
                if ((IsEqualDate(useDate, dtpk.Value)) && (btn.BackColor != Color.Aqua))
                {
                    btn.TextColor = Color.LightPink;
                }

                //Những ngày lễ
                int k = IsPublicDay(useDate);
                if (k == 1)
                {
                    btn.TextColor = Color.Red;
                }
                else if (k == 0)
                {
                    btn.TextColor = Color.BlueViolet;
                }
                else if (k == -1)
                {
                    btn.TextColor = Color.Orange;
                }

                MatrixColor[line][column] = btn.BackColor;
                if (column >= 6)
                {
                    line++;
                }
                useDate = useDate.AddDays(1);
                num++;
            }
            int MaxMatrix = (line == 4) ? 35 : 42;

            if (column == 6)
            {
                for (int i = line; i < Cons.DayOfColumn; i++)
                {
                    for (int j = 0; j < Cons.DayOfWeek; j++)
                    {
                        CustomButton btn = Matrix[i][j];
                        MatrixColor[i][j] = btn.BackColor;
                        btn.Visible       = false;
                    }
                }
            }
            else
            {
                if (date.Month == 12)
                {
                    useDate = new DateTime(date.Year + 1, 1, 1);
                }
                else
                {
                    useDate = new DateTime(date.Year, date.Month + 1, 1);
                }
                for (int i = 1; i <= (MaxMatrix - num); i++)
                {
                    column = DateOfWeek.IndexOf(useDate.DayOfWeek.ToString());
                    LuniSolarDate <VietnameseLocalInfoProvider> lunnardate = LuniSolarCalendar <VietnameseLocalInfoProvider> .LuniSolarDateFromSolarDate(useDate);

                    CustomButton btn = Matrix[line][column];
                    btn.Click += NextBttn_Click;
                    btn.Horizontal_Alignment  = StringAlignment.Near;
                    btn.ButtonText            = useDate.Day.ToString();
                    btn.SLunnarDay            = lunnardate.Day;
                    btn.SLunnarMonth          = lunnardate.Month;
                    btn.ZodiacDay             = lunnarCalendar.IsZodiacDay(useDate, lunnardate.Month);
                    btn.LunnarDayColor        = Color.DarkGray;
                    btn.TextColor             = Color.DarkGray;
                    MatrixColor[line][column] = btn.BackColor;
                    if (column >= 6)
                    {
                        line++;
                    }
                    useDate = useDate.AddDays(1);
                }
                if (MaxMatrix == 35)
                {
                    for (int i = 0; i < Cons.DayOfWeek; i++)
                    {
                        CustomButton btn = Matrix[line][i];
                        MatrixColor[line][i] = btn.BackColor;
                        btn.Visible          = false;
                    }
                }
            }
        }