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; } } } }