Пример #1
0
 public void InvokeOnPicked(AyDatePickEventArgs args)
 {
     if (OnPicked.IsNotNull())
     {
         OnPicked(this, args);
     }
     Week = AyCalendarService.GetWeekOfYear(PickedDate.Value, DateRuleObjects.firstDayOfWeek).ToObjectString();
 }
        public Button CreateButtons(int content)
        {
            Button btn = new Button();

            btn.ClickMode = ClickMode.Press;
            btn.Content   = content.ToString();
            btn.SetResourceReference(Button.StyleProperty, "AyDateBoxCalendar.Button");
            AyCalendarService.SetClickMinuteButtonsEnabled(btn, content, SelectedDateTime, MinDateTime, MaxDateTime, DisabledDatesStrings, setOpposite);
            btn.Tag    = content;
            btn.Click += Btn_Click;
            return(btn);
        }
        private void YearNavigationOperation()
        {
            isCreateLessMinValue = false;
            isCreateLessMaxValue = false;
            int _1 = 0;

            for (int i = fiveBefore; i < endBefore; i++)
            {
                var _11 = RootGrid.Children[_1] as Button;
                if (_11.IsNotNull())
                {
                    _11.Content   = i;
                    _11.Tag       = i;
                    _11.IsEnabled = true;
                    if (i < MinValue)
                    {
                        isCreateLessMinValue = true;
                        _11.IsEnabled        = false;
                    }
                    if (i > MaxValue)
                    {
                        _11.IsEnabled        = false;
                        isCreateLessMaxValue = true;
                    }
                    AyCalendarService.SetClickYearButtonsEnabled(_11, i, MinDateTime, MaxDateTime, DisplayDatesStrings, setOpposite, SelectedDateTime);
                }
                _1++;
            }
            if (!isCreateLessMinValue)
            {
                prewtenbutton.IsEnabled = true;
            }
            else
            {
                prewtenbutton.IsEnabled = false;
            }

            if (!isCreateLessMaxValue)
            {
                nexttenbutton.IsEnabled = true;
            }
            else
            {
                nexttenbutton.IsEnabled = false;
            }
            this.Focus();
            this.SelectAll();
        }
Пример #4
0
        public void CreatePopupList()
        {
            if (DateRule == "")            //如果是空白,默认选中今天,啥也不限制
            {
                AyCalendar ac = new AyCalendar();
                ac.BorderBrush           = Brushes.Transparent;
                ac.MinDateReferToElement = this.MinDateReferToElement;
                ac.MaxDateReferToElement = this.MaxDateReferToElement;
                ac.DateBoxInput          = this;
                //ac.DisabledDatesStrings = this.DisabledDatesStrings;
                ac.HorizontalAlignment = HorizontalAlignment.Center;
                ac.VerticalAlignment   = VerticalAlignment.Center;
                ac.SelectMode          = AyDatePickerSelectMode.OnlySelectDate;
                if (!this.Text.IsNullAndTrimAndEmpty())
                {
                    DateTime?date = ReverseDateTimeFromText(ac);
                    if (date.HasValue)
                    {
                        ac.SelectedDateTime = date;
                    }
                }
                RootGrid.Children.Add(ac);
            }
            else
            {
                if (DateRuleObjects.IsNotNull())
                {
                    _fmt = AyCalendarService.GetAyCalendarFMT(DateRuleObjects.dateFmt);
                    switch (_fmt)
                    {
                    case AyCalendarFMT.None:
                        break;

                    default:
                        AyCalendar ac = CreateAyCalendar();
                        RootGrid.Children.Add(ac);
                        break;
                    }
                }
            }
        }
        public Button CreateButtons(int content)
        {
            Button btn = new Button();

            btn.ClickMode = ClickMode.Press;
            btn.Content   = content.ToString();
            btn.SetResourceReference(Button.StyleProperty, "AyDateBoxCalendar.Button");
            AyCalendarService.SetClickYearButtonsEnabled(btn, content, MinDateTime, MaxDateTime, DisplayDatesStrings, setOpposite, SelectedDateTime);
            if (content < MinValue)
            {
                isCreateLessMinValue = true;
                btn.IsEnabled        = false;
            }
            if (content > MaxValue)
            {
                btn.IsEnabled        = false;
                isCreateLessMaxValue = true;
            }
            btn.Tag    = content;
            btn.Click += Btn_Click;
            return(btn);
        }
Пример #6
0
        private AyCalendar CreateAyCalendar()
        {
            if (DateRuleObjects.disabledDates.IsNotNull() && DateRuleObjects.disabledDates.Count > 0)
            {
                if (DisabledDatesStrings == null)
                {
                    DisabledDatesStrings = new List <string>();
                }
                else
                {
                    DisabledDatesStrings.Clear();
                }

                foreach (var disabledDate in DateRuleObjects.disabledDates)
                {
                    var    _ti = AyCalendarService.hasTeShu(disabledDate);
                    string _2  = disabledDate;
                    if (_ti)
                    {
                        _2 = AyDateStrictExpression.ConvertDynamicAyDateExpression(disabledDate);
                        if (!DisabledDatesStrings.Contains(_2))
                        {
                            DisabledDatesStrings.Add(_2);
                        }
                    }
                    else
                    {
                        if (!DisabledDatesStrings.Contains(_2))
                        {
                            DisabledDatesStrings.Add(_2);
                        }
                    }
                }
            }
            else
            {
                DisabledDatesStrings = null;
            }
            List <string> SpecialDatesStrings = null;

            if (DateRuleObjects.specialDates.IsNotNull() && DateRuleObjects.specialDates.Count > 0)
            {
                if (SpecialDatesStrings == null)
                {
                    SpecialDatesStrings = new List <string>();
                }
                foreach (var specialDates in DateRuleObjects.specialDates)
                {
                    var    _ti = AyCalendarService.hasTeShu(specialDates);
                    string _2  = specialDates;
                    if (_ti)
                    {
                        _2 = AyDateStrictExpression.ConvertDynamicAyDateExpression(specialDates);
                        if (!SpecialDatesStrings.Contains(_2))
                        {
                            SpecialDatesStrings.Add(_2);
                        }
                    }
                    else
                    {
                        if (!SpecialDatesStrings.Contains(_2))
                        {
                            SpecialDatesStrings.Add(_2);
                        }
                    }
                }
            }


            AyCalendar ac = new AyCalendar(DateRule);

            ac.BorderBrush           = Brushes.Transparent;
            ac.MinDateReferToElement = this.MinDateReferToElement;
            ac.MaxDateReferToElement = this.MaxDateReferToElement;
            ac.DisabledDatesStrings  = this.DisabledDatesStrings;
            ac.SpecialDatesStrings   = SpecialDatesStrings;
            ac.DateBoxInput          = this;
            ac.HorizontalAlignment   = HorizontalAlignment.Center;
            ac.VerticalAlignment     = VerticalAlignment.Center;
            DateTime?date = ReverseDateTimeFromText(ac);

            if (date.HasValue)
            {
                ac.SelectedDateTime = date;
            }
            return(ac);
        }
Пример #7
0
        internal void UseValidate()
        {
            bool hasTan = false;

            try
            {
                DateRuleObjects = AyJsonUtility.DecodeObject2 <AyDateRuleJsonToObjects>(DateRule);

                if (DateRuleObjects.IsNotNull())
                {
                    string[] expectedFormats = { DateRuleObjects.dateFmt };
                    DateTime dt = DateTime.ParseExact(Text, expectedFormats, AyDatePickerHelper.culture, DateTimeStyles.AllowInnerWhite);
                    if (dt.Year < YearStrick.MINYEAR)
                    {
                        if (!hasTan)
                        {
                            HasWrongShowTip();
                            hasTan = true;
                        }

                        return;
                    }
                    else if (dt.Year > YearStrick.MAXYEAR)
                    {
                        if (!hasTan)
                        {
                            HasWrongShowTip();
                            hasTan = true;
                        }
                    }
                    if (!DateItemIsInValidRange(dt))
                    {
                        if (!hasTan)
                        {
                            HasWrongShowTip();
                            hasTan = true;
                        }
                    }
                    if (!hasTan)
                    {
                        PickedDate = dt;
                        if (DateRuleObjects.IsNotNull())
                        {
                            Week = AyCalendarService.GetWeekOfYear(PickedDate.Value, DateRuleObjects.firstDayOfWeek).ToObjectString();
                        }
                        else
                        {
                            Week = "0";
                        }
                    }

                    //}
                }
            }
            catch
            {
                if (!hasTan)
                {
                    hasTan = true;

                    ErrorInfo             = AyCalendarService.WRONGTIP;
                    apErrorToolTip.IsOpen = true;
                    IsError = true;
                    return;
                }
            }
        }
Пример #8
0
        /// <summary>
        /// 验证时间是否在有效值的范围内
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        internal bool DateItemIsInValidRange(DateTime item)
        {
            bool returnResult = true;

            if (DateRuleObjects.IsNotNull())
            {
                if (!DateRuleObjects.minDate.IsNullAndTrimAndEmpty())
                {
                    //是否含有#F{ }
                    if (DateRuleObjects.minDate.IndexOf(@"#F{") == 0)
                    {
                        List <DateTime?> _4 = null;
                        if (DateRuleObjects.minDate.IndexOf("ay") > -1) //使用了绑定
                        {
                            if (MinDateReferToElement.IsNotNull())
                            {
                                string _text     = MinDateReferToElement.Text;
                                string _dateRule = MinDateReferToElement.DateRule;
                                var    ddo       = AyJsonUtility.DecodeObject2 <AyDateRuleJsonToObjects>(_dateRule);

                                if (ddo.IsNotNull())
                                {
                                    _4 = AyDateStrictExpression.ConvertDDVF(_text, DateRuleObjects.minDate, ddo.dateFmt);
                                }
                                else
                                {
                                    _4 = AyDateStrictExpression.ConvertDDVF(_text, DateRuleObjects.minDate, "yyyy-MM-dd");
                                }
                            }
                        }
                        else
                        {
                            _4 = AyDateStrictExpression.ConvertDDVF(null, DateRuleObjects.minDate, null);
                        }
                        bool ret = true;

                        foreach (var subtime in _4)
                        {
                            if (subtime.IsNotNull() && item < subtime.Value)
                            {
                                ret = false;
                                break;
                            }
                        }

                        return(ret);
                    }
                    else
                    {
                        //单控制
                        DateTime MinDateCopy = AyDateStrictExpression.Convert(DateRuleObjects.minDate);
                        if (item < MinDateCopy)
                        {
                            returnResult = false;
                        }
                    }
                }
                if (!DateRuleObjects.maxDate.IsNullAndTrimAndEmpty())
                {
                    //是否含有#F{ }
                    if (DateRuleObjects.maxDate.IndexOf(@"#F{") == 0)
                    {
                        List <DateTime?> _4 = null;
                        if (DateRuleObjects.maxDate.IndexOf("ay") > -1) //使用了绑定
                        {
                            if (MaxDateReferToElement.IsNotNull())
                            {
                                string _text     = MaxDateReferToElement.Text;
                                string _dateRule = MaxDateReferToElement.DateRule;
                                var    ddo       = AyJsonUtility.DecodeObject2 <AyDateRuleJsonToObjects>(_dateRule);

                                if (ddo.IsNotNull())
                                {
                                    _4 = AyDateStrictExpression.ConvertDDVF(_text, DateRuleObjects.maxDate, ddo.dateFmt);
                                }
                                else
                                {
                                    _4 = AyDateStrictExpression.ConvertDDVF(_text, DateRuleObjects.maxDate, "yyyy-MM-dd");
                                }
                            }
                        }
                        else
                        {
                            _4 = AyDateStrictExpression.ConvertDDVF(null, DateRuleObjects.maxDate, null);
                        }
                        bool ret = true;

                        foreach (var subtime in _4)
                        {
                            if (subtime.IsNotNull() && item > subtime.Value)
                            {
                                ret = false;
                                break;
                            }
                        }

                        return(ret);
                    }
                    else
                    {
                        //单控制
                        DateTime MaxDateCopy = AyDateStrictExpression.Convert(DateRuleObjects.maxDate);
                        if (item > MaxDateCopy)
                        {
                            returnResult = false;
                        }
                    }
                }


                if (DateRuleObjects.disabledDays.IsNotNull() && DateRuleObjects.disabledDays.Count > 0)
                {
                    var _1 = item.DayOfWeek.GetHashCode();
                    foreach (var disabledDay in DateRuleObjects.disabledDays)
                    {
                        if (_1 == disabledDay)
                        {
                            returnResult = false;
                            break;
                        }
                    }
                }
                if (DateRuleObjects.disabledDates.IsNotNull() && DateRuleObjects.disabledDates.Count > 0)
                {
                    if (DisabledDatesStrings == null)
                    {
                        DisabledDatesStrings = new List <string>();
                    }
                    else
                    {
                        DisabledDatesStrings.Clear();
                    }

                    foreach (var disabledDate in DateRuleObjects.disabledDates)
                    {
                        var    _ti = AyCalendarService.hasTeShu(disabledDate);
                        string _2  = disabledDate;
                        if (_ti)
                        {
                            _2 = AyDateStrictExpression.ConvertDynamicAyDateExpression(disabledDate);
                            if (!DisabledDatesStrings.Contains(_2))
                            {
                                DisabledDatesStrings.Add(_2);
                            }
                        }
                        else
                        {
                            if (!DisabledDatesStrings.Contains(disabledDate))
                            {
                                DisabledDatesStrings.Add(disabledDate);
                            }
                        }
                        //正则处理
                        if (_2.IndexOf(":") < 0)
                        {
                            bool d = Regex.IsMatch(item.ToString("yyyy-MM-dd"), _2);
                            if (d)
                            {
                                returnResult = false;
                            }
                        }
                        else
                        {
                            bool d = Regex.IsMatch(item.ToString("yyyy-MM-dd HH:mm:ss"), _2);
                            if (d)
                            {
                                returnResult = false;
                            }
                        }
                        if (DateRuleObjects.opposite)
                        {
                            returnResult = !returnResult;
                        }
                    }
                }
                else
                {
                    DisabledDatesStrings = null;
                }
            }
            return(returnResult);
        }
Пример #9
0
        internal void FilterDatePickerItem(AyDatePickerItem item)
        {
            if (firstInitMinMax)
            {
                var _1 = AyCalendarService.FilterDatePickerItem(DateRuleObjects, MinDateReferToElement, MaxDateReferToElement);
                MinDateCopy     = _1.Item1;
                MaxDateCopy     = _1.Item2;
                firstInitMinMax = false;
            }
            if (item.IsNotNull())
            {
                if (MinDateCopy.Count > 0)
                {
                    foreach (var subitem in MinDateCopy)
                    {
                        if (subitem.HasValue && item.Date < subitem.Value.Date)
                        {
                            item.IsEnabled = false;
                            break;
                        }
                    }
                }
                if (MaxDateCopy.Count > 0)
                {
                    foreach (var subitem in MaxDateCopy)
                    {
                        if (subitem.HasValue && item.Date > subitem.Value.Date)
                        {
                            item.IsEnabled = false;
                            break;
                        }
                    }
                }

                //周几限制
                if (DateRuleObjects.IsNotNull())
                {
                    if (DateRuleObjects.disabledDays.IsNotNull() && DateRuleObjects.disabledDays.Count > 0)
                    {
                        var _1 = item.Date.DayOfWeek.GetHashCode();
                        foreach (var disabledDay in DateRuleObjects.disabledDays)
                        {
                            if (_1 == disabledDay)
                            {
                                item.IsEnabled = false;
                                break;
                            }
                        }
                    }

                    //限制disabledDate
                    var _validateItemResult = AyCalendarService.ValidateRegexDate(item.Date, this.DisabledDatesStrings, DateRuleObjects.opposite);
                    if (!_validateItemResult)
                    {
                        item.IsEnabled = false;
                    }


                    //高亮日和高亮日期
                    if (DateRuleObjects.specialDays.IsNotNull() && DateRuleObjects.specialDays.Count > 0)
                    {
                        var _1 = item.Date.DayOfWeek.GetHashCode();
                        foreach (var specialDay in DateRuleObjects.specialDays)
                        {
                            if (_1 == specialDay)
                            {
                                item.IsHighlight = true;
                                break;
                            }
                        }
                    }

                    if (SpecialDatesStrings.IsNotNull() && SpecialDatesStrings.Count > 0)
                    {
                        foreach (var SpecialDates in SpecialDatesStrings)
                        {
                            bool vaResult = false;
                            if (SpecialDates.IndexOf(":") > -1)
                            {
                                string[] _01 = item.Date.ToString("yyyy-MM-dd HH:mm:ss").Split(' ');
                                string[] _02 = SpecialDates.Split(' ');
                                vaResult = System.Text.RegularExpressions.Regex.IsMatch(_01[0] + " " + _02[1], SpecialDates);
                            }
                            else
                            {
                                vaResult = System.Text.RegularExpressions.Regex.IsMatch(item.Date.ToString("yyyy-MM-dd"), SpecialDates);
                            }
                            if (vaResult)
                            {
                                item.IsHighlight = true;
                                break;
                            }
                        }
                    }
                }
            }
        }
Пример #10
0
        public void SetList(int year, int month, int SelectedDay, bool Select = true)
        {
            items.Clear();
            sp_weekhead.Children.Clear();

            currentYear  = year;
            currentMonth = month;
            currentDay   = SelectedDay;
            DateTime now            = DateTime.Now;
            int      IndexOfFistDay = 1;

            if (DateRuleObjects == null)
            {
                return;
            }
            if (DateRuleObjects.firstDayOfWeek > -1 && DateRuleObjects.firstDayOfWeek < 7)
            {
                IndexOfFistDay = AyDatePickerHelper.GetDayOfWeek(year, month, AyFirstOfWeekDictionary.FirstDayDistanceDays[DateRuleObjects.firstDayOfWeek]);

                for (int i = DateRuleObjects.firstDayOfWeek; i < 7; i++)
                {
                    sp_weekhead.Children.Add(AyCalendarService.CreateWeekHeadLabel(AyFirstOfWeekDictionary.FirstDayDistanceDaysText[i]));
                }
                for (int i = 0; i < DateRuleObjects.firstDayOfWeek; i++)
                {
                    sp_weekhead.Children.Add(AyCalendarService.CreateWeekHeadLabel(AyFirstOfWeekDictionary.FirstDayDistanceDaysText[i]));
                }
            }
            else
            {
                IndexOfFistDay = AyDatePickerHelper.GetDayOfWeek(year, month, 1);

                for (int i = 0; i < 7; i++)
                {
                    sp_weekhead.Children.Add(AyCalendarService.CreateWeekHeadLabel(AyFirstOfWeekDictionary.FirstDayDistanceDaysText[i]));
                }
            }


            DateTime weekStart      = new DateTime(year, month, 1);
            DateTime nextMonthStart = weekStart.AddMonths(1);
            //6 代表 这个月1号是星期六 0-6
            int day       = 1;
            int nextMonth = 0;
            int monDay    = AyDatePickerHelper.NumOfDays(year, month);

            for (int i = 0; i < 42; i++)
            {
                AyDatePickerItem item = new AyDatePickerItem();
                if (i >= IndexOfFistDay && day <= monDay)
                {
                    //var nongli = AyDatePickerHelper.GetNongLi(year, month, day);
                    //item.NameOfDay = nongli.Day;
                    //item.MonthAndDay = nongli.MonthAndDay;
                    item.NumberOfDay = day.ToString();
                    item.Date        = new DateTime(year, month, day);
                    if (item.Date.Year > YearStrick.MAXYEAR || item.Date.Year < YearStrick.MINYEAR)
                    {
                        item.IsEnabled = false;
                    }
                    //item.Week_S = item.Date.ToString("dddd", AyDatePickerHelper.culture);
                    //item.ShengXiao = nongli.ShengXiao;
                    //item.GanZhi = nongli.TianGan + nongli.DiGan;
                    //item.TianGan = nongli.TianGan;
                    //item.TianGan = nongli.DiGan;
                    //item.JieQi = nongli.JieQi;
                    //item.GongHoliday = nongli.GongHoliday;
                    //item.NongHoliday = nongli.NongHoliday;
                    //item.Title = nongli.Title;
                    //item.TitleType = nongli.TitleType;

                    //item.TipShow = item.Date.ToString("yyyy年MM月dd日 ") + item.Week_S
                    //   + Environment.NewLine + "[" + item.GanZhi + item.ShengXiao + "年]" + "农历" + item.MonthAndDay;
                    //item.TipShow = item.Date.ToString("yyyy年MM月dd日 ") + item.Week_S;
                    item.IsLastOrNextDateItem = false;

                    //TODO 最大最小值判断
                    FilterDatePickerItem(item);

                    if (item.Date.Date == now.Date)
                    {
                        item.IsToday = true;
                    }

                    if (SelectedDay == day && Select)
                    {
                        item.IsSelected = true;
                    }
                    //是不是周末
                    if (DateRuleObjects.highLineWeekDay)
                    {
                        var t = item.Date.DayOfWeek;
                        if (t == DayOfWeek.Saturday || t == DayOfWeek.Sunday)
                        {
                            item.IsWeekDay = true;
                        }
                    }
                    day++;
                    items.Add(item);
                }
                else if (i < IndexOfFistDay)
                {//前置补空
                    int ad = i - IndexOfFistDay;
                    item.Date = weekStart.AddDays(ad);
                    if (item.Date.Year > YearStrick.MAXYEAR || item.Date.Year < YearStrick.MINYEAR)
                    {
                        item.IsEnabled = false;
                    }
                    //var nongli = AyDatePickerHelper.GetNongLi(item.Date.Year, item.Date.Month, item.Date.Day);
                    //item.NameOfDay = nongli.Day;
                    //item.MonthAndDay = nongli.MonthAndDay;
                    item.NumberOfDay = item.Date.Day.ToString();

                    //item.Week_S = item.Date.ToString("dddd", AyDatePickerHelper.culture);
                    //item.ShengXiao = nongli.ShengXiao;
                    //item.GanZhi = nongli.TianGan + nongli.DiGan;
                    //item.TianGan = nongli.TianGan;
                    //item.TianGan = nongli.DiGan;
                    //item.JieQi = nongli.JieQi;
                    //item.GongHoliday = nongli.GongHoliday;
                    //item.NongHoliday = nongli.NongHoliday;
                    //item.Title = nongli.Title;
                    //item.TitleType = nongli.TitleType;
                    //item.TipShow = item.Date.ToString("yyyy年MM月dd日 ") + item.Week_S;


                    item.IsLastOrNextDateItem = true;

                    //TODO 最大最小值判断
                    FilterDatePickerItem(item);


                    if (item.Date.Date == now.Date)
                    {
                        item.IsToday = true;
                    }

                    //是不是周末
                    if (DateRuleObjects.highLineWeekDay)
                    {
                        var t = item.Date.DayOfWeek;
                        if (t == DayOfWeek.Saturday || t == DayOfWeek.Sunday)
                        {
                            item.IsWeekDay = true;
                        }
                    }
                    items.Add(item);
                }
                else
                { //后置补空
                    item.Date = nextMonthStart.AddDays(nextMonth);
                    if (item.Date.Year > YearStrick.MAXYEAR || item.Date.Year < YearStrick.MINYEAR)
                    {
                        item.IsEnabled = false;
                    }
                    //var nongli = AyDatePickerHelper.GetNongLi(item.Date.Year, item.Date.Month, item.Date.Day);
                    //item.NameOfDay = nongli.Day;
                    //item.MonthAndDay = nongli.MonthAndDay;
                    item.NumberOfDay = item.Date.Day.ToString();

                    //item.Week_S = item.Date.ToString("dddd", AyDatePickerHelper.culture);
                    //item.ShengXiao = nongli.ShengXiao;
                    //item.GanZhi = nongli.TianGan + nongli.DiGan;
                    //item.TianGan = nongli.TianGan;
                    //item.TianGan = nongli.DiGan;
                    //item.JieQi = nongli.JieQi;
                    //item.GongHoliday = nongli.GongHoliday;
                    //item.NongHoliday = nongli.NongHoliday;
                    //item.Title = nongli.Title;
                    //item.TitleType = nongli.TitleType;
                    //item.TipShow = item.Date.ToString("yyyy年MM月dd日 ") + item.Week_S;
                    item.IsLastOrNextDateItem = true;
                    //TODO 最大最小值判断
                    FilterDatePickerItem(item);

                    if (item.Date.Date == now.Date)
                    {
                        item.IsToday = true;
                    }

                    //是不是周末
                    if (DateRuleObjects.highLineWeekDay)
                    {
                        var t = item.Date.DayOfWeek;
                        if (t == DayOfWeek.Saturday || t == DayOfWeek.Sunday)
                        {
                            item.IsWeekDay = true;
                        }
                    }

                    items.Add(item);
                    nextMonth++;
                }
            }

            //设置周
            if (DateRuleObjects.isShowWeek && items.Count > 0)
            {
                bdWeekHead.Visibility = Visibility.Visible;
                //计算周
                sp_WeekNo.Children.Clear();
                var _1 = AyCalendarService.GetWeekOfYear(items[0].Date, DateRuleObjects.firstDayOfWeek);

                sp_WeekNo.Children.Add(AyCalendarService.CreateWeekHeadLabel2((_1++).ToString()));
                sp_WeekNo.Children.Add(AyCalendarService.CreateWeekHeadLabel2((_1++).ToString()));
                sp_WeekNo.Children.Add(AyCalendarService.CreateWeekHeadLabel2((_1++).ToString()));
                sp_WeekNo.Children.Add(AyCalendarService.CreateWeekHeadLabel2((_1++).ToString()));
                sp_WeekNo.Children.Add(AyCalendarService.CreateWeekHeadLabel2((_1++).ToString()));
                sp_WeekNo.Children.Add(AyCalendarService.CreateWeekHeadLabel2((_1++).ToString()));
            }
            else
            {
                bdWeekHead.Visibility = Visibility.Collapsed;
                sp_WeekNo.Children.Clear();
            }
        }