Пример #1
0
 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
     {
     }
 }
Пример #2
0
        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();
        }
Пример #3
0
        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);
            }
        }
Пример #4
0
        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'));
            }
        }