private void UserControl_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { if (StaticGlobal.allowPick) { MainWindow MW = (MainWindow)Application.Current.Windows[0]; if (!IsEmpty) //不是空格 { if (!IsPicked) { if (StaticGlobal.pickedNum < 4) { Color color = (Color)ColorConverter.ConvertFromString("Pink"); SolidColorBrush brush = new SolidColorBrush(color); this.Background = brush; IsPicked = true; StaticGlobal.pickedNum += 1; if (StaticGlobal.pickedNum == 4) { foreach (MonthControl monthcontrol in MW.YearPanel.Children) { foreach (var item in monthcontrol.MonthPanel.Children) { DayControl daycontrol = item as DayControl; if (daycontrol != null) { if (daycontrol.IsPicked) { StaticGlobal.pickeddays.Add(daycontrol.Date); } } } } } } else { MessageBox.Show("只能选择4个时间作为寒暑假起始!", "提示"); } } else { Color color = (Color)ColorConverter.ConvertFromString("White"); SolidColorBrush brush = new SolidColorBrush(color); this.Background = brush; IsPicked = false; StaticGlobal.pickedNum -= 1; } MW.ChangeButton(); } else //啥都不做 { } } else { } }
private void CommitBtn_Click(object sender, RoutedEventArgs e) { holidayPanel.Visibility = Visibility.Collapsed; //StaticGlobal.pickeddays.Clear(); StaticGlobal.pickedNum = 0; foreach (MonthControl monthcontrol in YearPanel.Children) { foreach (var item in monthcontrol.MonthPanel.Children) { DayControl daycontrol = item as DayControl; if (daycontrol != null) { if (daycontrol.IsPicked) { StaticGlobal.pickeddays.Add(daycontrol.Date); } } } } DateTime date; int startmonth; int startday; int endmonth; int endday; for (int i = 0; i < 4; i += 2) { date = Convert.ToDateTime(StaticGlobal.pickeddays[i]); startmonth = date.Month; startday = date.Day; date = Convert.ToDateTime(StaticGlobal.pickeddays[i + 1]); endmonth = date.Month; endday = date.Day; if (i < 1) //寒假 { Seek.read_vacation(startmonth, startday, endmonth, endday, false); } else { Seek.read_vacation(startmonth, startday, endmonth, endday, true); } } ProgressGrid.Visibility = Visibility.Visible; YearPanel.Visibility = Visibility.Collapsed; CalculateHoliday(); ProgressGrid.Visibility = Visibility.Collapsed; YearPanel.Visibility = Visibility.Visible; MessageBox.Show("加载完成!", "提示"); CommitBtn.IsEnabled = false; RenewBtn.IsEnabled = true; StaticGlobal.allowPick = false; detailImage.Visibility = Visibility.Visible; StaticGlobal.pickeddays.Clear(); }
public void MonthControlLoad(int year, int month) { YearId = year; MonthId = month; monthlbl.Content = string.Format("{0}年{1}月", YearId, MonthId); //加载天 for (int i = 0; i < 7; i++) { WeekDayControl weekdaycontrol = new WeekDayControl(); weekdaycontrol.LoadFirstLine(i); MonthPanel.Children.Add(weekdaycontrol); } //计算这个月的1号是周几 string strDate = string.Format("{0}-{1}-01", YearId, MonthId); DayOfWeek weekday = Convert.ToDateTime(strDate).DayOfWeek; int firstemptyNum = StaticGlobal.weekdayDic[weekday.ToString()]; for (int i = 0; i < firstemptyNum; i++) { DayControl daycontrol = new DayControl(); daycontrol.LoadEmpty(); MonthPanel.Children.Add(daycontrol); } for (int i = 0; i < StaticGlobal.days[MonthId]; i++) { DayControl daycontrol = new DayControl(); daycontrol.LoadDay(YearId, MonthId, i + 1); MonthPanel.Children.Add(daycontrol); } for (int i = 0; i < 42 - StaticGlobal.days[MonthId] - firstemptyNum; i++) { DayControl daycontrol = new DayControl(); daycontrol.LoadEmpty(); MonthPanel.Children.Add(daycontrol); } }
public void CalculateHoliday() { DownLoadImport(); //计算假期 Seek.calcu_holiday(); StaticGlobal.totalholidayNum = Seek.count_holiday(); MainWindow MW = (MainWindow)Application.Current.Windows[0]; foreach (MonthControl monthcontrol in MW.YearPanel.Children) { foreach (var item in monthcontrol.MonthPanel.Children) { DayControl daycontrol = item as DayControl; if (daycontrol != null) { if (!daycontrol.IsEmpty) //不是空格 { DateTime date = Convert.ToDateTime(daycontrol.Date); int month = date.Month; int day = date.Day; bool isHoliday = Seek.seek_status(month, day); if (isHoliday) { Color color = (Color)ColorConverter.ConvertFromString("LightBlue"); SolidColorBrush brush = new SolidColorBrush(color); daycontrol.Background = brush; //计算假期详情(放假原因),三种情况:工作日、单(双)休日、节假日,这里不管寒暑假,寒暑假直接根据选择打印出来 if (daycontrol.HolidayTxt.Text != "") { StaticGlobal.dateandholiday.Add(Convert.ToDateTime(daycontrol.Date), daycontrol.HolidayTxt.Text); } } } } } } //判断单(双)休日、节假日,StaticGlobal.dateandholiday只包含周末和节假日 Dictionary <string, bool> holidayFlags = new Dictionary <string, bool>(); for (int i = 0; i < StaticGlobal.holidays.Length; i++) { holidayFlags.Add(StaticGlobal.holidays[i], false); } foreach (KeyValuePair <DateTime, string> kvp in StaticGlobal.dateandholiday) { if (kvp.Value == "周末") { DateTime yesterday = kvp.Key.AddDays(-1); DateTime tomorrow = kvp.Key.AddDays(1); if (StaticGlobal.dateandholiday.ContainsKey(tomorrow)) { if (StaticGlobal.dateandholiday[tomorrow] == "周末") { StaticGlobal.doubleweekendList.Add(kvp.Key.Year + "-" + kvp.Key.Month.ToString().PadLeft(2, '0') + "-" + kvp.Key.Day.ToString().PadLeft(2, '0')); } else { if (StaticGlobal.dateandholiday.ContainsKey(yesterday)) { if (StaticGlobal.dateandholiday[yesterday] != "周末") { StaticGlobal.singleweekendList.Add(kvp.Key.Year + "-" + kvp.Key.Month.ToString().PadLeft(2, '0') + "-" + kvp.Key.Day.ToString().PadLeft(2, '0')); } else { } } } } else { if (StaticGlobal.dateandholiday.ContainsKey(yesterday)) { if (StaticGlobal.dateandholiday[yesterday] != "周末") { StaticGlobal.singleweekendList.Add(kvp.Key.Year + "-" + kvp.Key.Month.ToString().PadLeft(2, '0') + "-" + kvp.Key.Day.ToString().PadLeft(2, '0')); } else { } } else { StaticGlobal.singleweekendList.Add(kvp.Key.Year + "-" + kvp.Key.Month.ToString().PadLeft(2, '0') + "-" + kvp.Key.Day.ToString().PadLeft(2, '0')); } } } else { if (holidayFlags[kvp.Value] == false) { holidayFlags[kvp.Value] = true; StaticGlobal.holidayanddate[kvp.Value] = kvp.Key.Year.ToString() + "-" + kvp.Key.Month.ToString().PadLeft(2, '0') + "-" + kvp.Key.Day.ToString().PadLeft(2, '0'); } else { } } } //显示 totalHolidayTxt.Text = StaticGlobal.totalholidayNum.ToString(); //元旦非常特殊,要单独考虑 //StaticGlobal.holidayanddate["元旦"] = "2018-01-01"; //c++判断有误,这句应该删掉 DateTime yuandan = Convert.ToDateTime(StaticGlobal.holidayanddate["元旦"]); DateTime second = yuandan.AddDays(1); DateTime third = yuandan.AddDays(2); if (StaticGlobal.holidayDic[second.Year.ToString() + "-" + second.Month.ToString().PadLeft(2, '0') + "-" + second.Day.ToString().PadLeft(2, '0')] == "元旦") { if (StaticGlobal.holidayDic[third.Year.ToString() + "-" + third.Month.ToString().PadLeft(2, '0') + "-" + third.Day.ToString().PadLeft(2, '0')] == "元旦") { } //什么都不做,就是元旦的第一天 else { StaticGlobal.holidayanddate["元旦"] = yuandan.AddDays(-1).Year.ToString() + "-" + yuandan.AddDays(-1).Month.ToString().PadLeft(2, '0') + "-" + yuandan.AddDays(-1).Day.ToString().PadLeft(2, '0'); } } else { StaticGlobal.holidayanddate["元旦"] = yuandan.AddDays(-2).Year.ToString() + "-" + yuandan.AddDays(-2).Month.ToString().PadLeft(2, '0') + "-" + yuandan.AddDays(-2).Day.ToString().PadLeft(2, '0'); } //节日 yuandanStart.Text = StaticGlobal.holidayanddate["元旦"]; //yuandanStart.Text = Convert.ToDateTime(StaticGlobal.holidayanddate["元旦"]).Year.ToString() // + "-" // + Convert.ToDateTime(StaticGlobal.holidayanddate["元旦"]).Month.ToString().PadLeft(2, '0') // + "-" // + Convert.ToDateTime(StaticGlobal.holidayanddate["元旦"]).Day.ToString().PadLeft(2, '0'); yuandanEnd.Text = (Convert.ToDateTime(StaticGlobal.holidayanddate["元旦"]).AddDays(2)).Year.ToString() + "-" + (Convert.ToDateTime(StaticGlobal.holidayanddate["元旦"]).AddDays(2)).Month.ToString().PadLeft(2, '0') + "-" + (Convert.ToDateTime(StaticGlobal.holidayanddate["元旦"]).AddDays(2)).Day.ToString().PadLeft(2, '0'); chunjieStart.Text = StaticGlobal.holidayanddate["春节"]; chunjieEnd.Text = (Convert.ToDateTime(StaticGlobal.holidayanddate["春节"]).AddDays(6)).Year.ToString() + "-" + (Convert.ToDateTime(StaticGlobal.holidayanddate["春节"]).AddDays(6)).Month.ToString().PadLeft(2, '0') + "-" + (Convert.ToDateTime(StaticGlobal.holidayanddate["春节"]).AddDays(6)).Day.ToString().PadLeft(2, '0'); qingmingStart.Text = StaticGlobal.holidayanddate["清明"]; qingmingEnd.Text = (Convert.ToDateTime(StaticGlobal.holidayanddate["清明"]).AddDays(2)).Year.ToString() + "-" + (Convert.ToDateTime(StaticGlobal.holidayanddate["清明"]).AddDays(2)).Month.ToString().PadLeft(2, '0') + "-" + (Convert.ToDateTime(StaticGlobal.holidayanddate["清明"]).AddDays(2)).Day.ToString().PadLeft(2, '0'); laodongStart.Text = StaticGlobal.holidayanddate["劳动节"]; laodongEnd.Text = (Convert.ToDateTime(StaticGlobal.holidayanddate["劳动节"]).AddDays(2)).Year.ToString() + "-" + (Convert.ToDateTime(StaticGlobal.holidayanddate["劳动节"]).AddDays(2)).Month.ToString().PadLeft(2, '0') + "-" + (Convert.ToDateTime(StaticGlobal.holidayanddate["劳动节"]).AddDays(2)).Day.ToString().PadLeft(2, '0'); duanwuStart.Text = StaticGlobal.holidayanddate["端午"]; duanwuEnd.Text = (Convert.ToDateTime(StaticGlobal.holidayanddate["端午"]).AddDays(2)).Year.ToString() + "-" + (Convert.ToDateTime(StaticGlobal.holidayanddate["端午"]).AddDays(2)).Month.ToString().PadLeft(2, '0') + "-" + (Convert.ToDateTime(StaticGlobal.holidayanddate["端午"]).AddDays(2)).Day.ToString().PadLeft(2, '0'); zhongqiuStart.Text = StaticGlobal.holidayanddate["中秋"]; zhongqiuEnd.Text = (Convert.ToDateTime(StaticGlobal.holidayanddate["中秋"]).AddDays(2)).Year.ToString() + "-" + (Convert.ToDateTime(StaticGlobal.holidayanddate["中秋"]).AddDays(2)).Month.ToString().PadLeft(2, '0') + "-" + (Convert.ToDateTime(StaticGlobal.holidayanddate["中秋"]).AddDays(2)).Day.ToString().PadLeft(2, '0'); guoqingStart.Text = StaticGlobal.holidayanddate["国庆"]; guoqingEnd.Text = (Convert.ToDateTime(StaticGlobal.holidayanddate["国庆"]).AddDays(6)).Year.ToString() + "-" + (Convert.ToDateTime(StaticGlobal.holidayanddate["国庆"]).AddDays(6)).Month.ToString().PadLeft(2, '0') + "-" + (Convert.ToDateTime(StaticGlobal.holidayanddate["国庆"]).AddDays(6)).Day.ToString().PadLeft(2, '0'); //暑假 shujiaStart.Text = StaticGlobal.pickeddays[0]; shujiaEnd.Text = StaticGlobal.pickeddays[1]; //寒假 hanjiaStart.Text = StaticGlobal.pickeddays[2]; hanjiaEnd.Text = StaticGlobal.pickeddays[3]; //单休 for (int i = 0; i < StaticGlobal.singleweekendList.Count; i++) { singleweekendList.Items.Add(StaticGlobal.singleweekendList[i]); } //双休 for (int i = 0; i < StaticGlobal.doubleweekendList.Count; i++) { doubleweekendList.Items.Add(StaticGlobal.doubleweekendList[i] + " —— " + (Convert.ToDateTime(StaticGlobal.doubleweekendList[i]).AddDays(1)).Year + "-" + (Convert.ToDateTime(StaticGlobal.doubleweekendList[i]).AddDays(1)).Month.ToString().PadLeft(2, '0') + "-" + (Convert.ToDateTime(StaticGlobal.doubleweekendList[i]).AddDays(1)).Day.ToString().PadLeft(2, '0')); } }