示例#1
0
        private void Initial(DateTime datetime)
        {
            dateTime    = datetime;
            Year        = persianCalendar.GetYear(datetime);
            Month       = persianCalendar.GetMonth(datetime);
            Day         = persianCalendar.GetDayOfMonth(datetime);
            Hour        = persianCalendar.GetHour(datetime);
            Minute      = persianCalendar.GetMinute(datetime);
            Second      = persianCalendar.GetSecond(datetime);
            Millisecond = Convert.ToInt32(persianCalendar.GetMilliseconds(datetime));
            HijriDate   = new HijriDate();
            HijriCalendarManager.SetHijriCalendar(datetime);
            HijriDate.Year  = HijriCalendarManager.GetHijriCalendar().GetYear(datetime);
            HijriDate.Month = HijriCalendarManager.GetHijriCalendar().GetMonth(datetime);
            HijriDate.Day   = HijriCalendarManager.GetHijriCalendar().GetDayOfMonth(datetime);
            DateMetaDatas   = HoliDaysData.GetInstance().GetMetaDataByDateTime(datetime);

            IsHoliDay = datetime.DayOfWeek == System.DayOfWeek.Friday;
            foreach (var item in DateMetaDatas)
            {
                IsHoliDay = IsHoliDay || item.IsHoliDay || DateTime.DayOfWeek == System.DayOfWeek.Friday;
            }
        }
示例#2
0
        public IList <DateMetaData> GetMetaDataByDateTime(DateTime dateTime)
        {
            var hijriCalendar = HijriCalendarManager.GetHijriCalendar();
            IList <DateMetaData> dateMetaDatas = new List <DateMetaData>();
            var data = DaysData.Where(a =>
                                      (a.Month == PersianCalendar.GetMonth(dateTime) && a.Day == PersianCalendar.GetDayOfMonth(dateTime) && a.CalenderType == CalenderType.Jalali) ||
                                      (a.Month == hijriCalendar.GetMonth(dateTime) && a.Day == hijriCalendar.GetDayOfMonth(dateTime) && a.CalenderType == CalenderType.Hijri) ||
                                      (a.Month == dateTime.Month && a.Day == dateTime.Day && a.CalenderType == CalenderType.Miladi)
                                      );

            if (hijriCalendar.GetMonth(dateTime) == 2 && hijriCalendar.GetDayOfMonth(dateTime) == 29)
            {
                var tempDate = dateTime.AddDays(1);
                hijriCalendar = HijriCalendarManager.SetHijriCalendar(tempDate);
                if (hijriCalendar.GetMonth(tempDate) == 2 && hijriCalendar.GetDayOfMonth(tempDate) == 30)
                {
                    data = data.ToList().Except(data.Where(e => e.CalenderType == CalenderType.Hijri && e.DateType == DateType.HoliDay)).ToList();
                }
            }
            foreach (var item in data)
            {
                dateMetaDatas.Add(new DateMetaData
                {
                    CalenderType = item.CalenderType
                    ,
                    DateType = item.DateType
                    ,
                    Description = item.Description
                    ,
                    IsHoliDay = item.DateType == DateType.HoliDay
                    ,
                    Id = $"{ item.Year}-{ item.Month.ToString("00")}-{ item.Day.ToString("00")}"
                });
            }
            return(dateMetaDatas);
        }