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