コード例 #1
0
ファイル: Helper.cs プロジェクト: alex765022/IBN
        public static DayOfWeek GetDayOfWeek(CalendarDayOfWeek calDayOfWeek)
        {
            switch (calDayOfWeek)
            {
            case CalendarDayOfWeek.Sunday:
                return(DayOfWeek.Sunday);

            case CalendarDayOfWeek.Monday:
                return(DayOfWeek.Monday);

            case CalendarDayOfWeek.Tuesday:
                return(DayOfWeek.Tuesday);

            case CalendarDayOfWeek.Wednesday:
                return(DayOfWeek.Wednesday);

            case CalendarDayOfWeek.Thursday:
                return(DayOfWeek.Thursday);

            case CalendarDayOfWeek.Friday:
                return(DayOfWeek.Friday);

            case CalendarDayOfWeek.Saturday:
                return(DayOfWeek.Saturday);

            default:
                return(DayOfWeek.Sunday);
            }
        }
コード例 #2
0
ファイル: Helper.cs プロジェクト: alex765022/IBN
 /// <summary>
 /// Return true if date is weekend
 /// </summary>
 /// <param name="now"></param>
 /// <param name="workWeek">work week</param>
 /// <returns></returns>
 public static bool IsWeekend(DateTime now, CalendarDayOfWeek workWeek)
 {
     if ((Helper.GetCalDayOfWeek(now.DayOfWeek) & workWeek) == 0)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
コード例 #3
0
ファイル: Helper.cs プロジェクト: alex765022/IBN
        /// <summary>
        /// Increments Date
        /// </summary>
        /// <param name="span"></param>
        /// <param name="now"></param>
        /// <returns></returns>
        public static DateTime IncrementDate(TimescaleTopSpan span, DateTime now, CalendarDayOfWeek firstDayOfWeek)
        {
            switch (span)
            {
            case TimescaleTopSpan.Week:
                return(now.AddDays(7).AddDays(-(LocalizedDayOfWeek(now.AddDays(7).DayOfWeek, firstDayOfWeek))));

            case TimescaleTopSpan.Month:
                return(now.AddMonths(1).AddDays(-now.AddMonths(1).Day + 1));
            }
            return(now);
        }
コード例 #4
0
ファイル: Helper.cs プロジェクト: alex765022/IBN
        /*
         * /// <summary>
         * /// Returns localized week number
         * /// </summary>
         * /// <param name="dayOfWeek"></param>
         * /// <returns></returns>
         * internal static int LocalizedDayOfWeek(System.DayOfWeek dayOfWeek)
         * {
         *      // Old way with auto detect based on localization
         *       int day = dayOfWeek.GetHashCode() - System.Globalization.DateTimeFormatInfo.CurrentInfo.FirstDayOfWeek.GetHashCode();
         *      // New settings based on setting selected for control
         *      // int day = dayOfWeek.GetHashCode() - System.Globalization.DateTimeFormatInfo.CurrentInfo.FirstDayOfWeek.GetHashCode();
         *
         *      if(day<0)
         *              day+=7;
         *
         *      return day;
         * }
         */

        /// <summary>
        /// Returns localized week number
        /// </summary>
        /// <param name="dayOfWeek"></param>
        /// <returns></returns>
        public static int LocalizedDayOfWeek(System.DayOfWeek dayOfWeek, CalendarDayOfWeek firstDayOfWeek)
        {
            // New settings based on setting selected for control
            int day = dayOfWeek.GetHashCode() - GetDayOfWeek(firstDayOfWeek).GetHashCode();

            if (day < 0)
            {
                day += 7;
            }

            return(day);
        }
コード例 #5
0
        /// <summary>
        /// Gets from the specified <see cref="CalendarDayOfWeek"/> a generic list
        /// with the work days.
        /// </summary>
        /// <param name="nonWorkDays">The non working days.</param>
        /// <returns>A list with the working days.</returns>
        public static List <DayOfWeek> GetWorkDays(CalendarDayOfWeek nonWorkDays)
        {
            List <DayOfWeek> workDays = new List <DayOfWeek>();

            for (int i = 0; i < 7; i++)
            {
                workDays.Add((DayOfWeek)i);
            }

            GetSysDaysOfWeek(nonWorkDays).ForEach(day =>
            {
                if (workDays.Contains(day))
                {
                    workDays.Remove(day);
                }
            });

            return(workDays);
        }
コード例 #6
0
        /// <summary>
        /// Gets a generic list of <see cref="DayOfWeek"/> value from the
        /// specified <see cref="CalendarDayOfWeek"/> value.
        /// </summary>
        /// <param name="days">The <see cref="CalendarDayOfWeek"/> value.</param>
        /// <returns>A generic list of type <see cref="DayOfWeek"/>.</returns>
        private static List <DayOfWeek> GetSysDaysOfWeek(CalendarDayOfWeek days)
        {
            List <DayOfWeek> list = new List <DayOfWeek>();

            if ((days & CalendarDayOfWeek.Monday) == CalendarDayOfWeek.Monday)
            {
                list.Add(DayOfWeek.Monday);
            }

            if ((days & CalendarDayOfWeek.Tuesday) == CalendarDayOfWeek.Tuesday)
            {
                list.Add(DayOfWeek.Tuesday);
            }

            if ((days & CalendarDayOfWeek.Wednesday) == CalendarDayOfWeek.Wednesday)
            {
                list.Add(DayOfWeek.Wednesday);
            }

            if ((days & CalendarDayOfWeek.Thursday) == CalendarDayOfWeek.Thursday)
            {
                list.Add(DayOfWeek.Thursday);
            }

            if ((days & CalendarDayOfWeek.Friday) == CalendarDayOfWeek.Friday)
            {
                list.Add(DayOfWeek.Friday);
            }

            if ((days & CalendarDayOfWeek.Saturday) == CalendarDayOfWeek.Saturday)
            {
                list.Add(DayOfWeek.Saturday);
            }

            if ((days & CalendarDayOfWeek.Sunday) == CalendarDayOfWeek.Sunday)
            {
                list.Add(DayOfWeek.Sunday);
            }

            return(list);
        }
コード例 #7
0
ファイル: DateMethods.cs プロジェクト: sulerzh/DbExporter
      /// <summary>
      /// Gets a generic list of <see cref="DayOfWeek"/> value from the
      /// specified <see cref="CalendarDayOfWeek"/> value.
      /// </summary>
      /// <param name="days">The <see cref="CalendarDayOfWeek"/> value.</param>
      /// <returns>A generic list of type <see cref="DayOfWeek"/>.</returns>
      private static List<DayOfWeek> GetSysDaysOfWeek(CalendarDayOfWeek days)
      {
         List<DayOfWeek> list = new List<DayOfWeek>();

         if ((days & CalendarDayOfWeek.Monday) == CalendarDayOfWeek.Monday)
         {
            list.Add(DayOfWeek.Monday);
         }

         if ((days & CalendarDayOfWeek.Tuesday) == CalendarDayOfWeek.Tuesday)
         {
            list.Add(DayOfWeek.Tuesday);
         }

         if ((days & CalendarDayOfWeek.Wednesday) == CalendarDayOfWeek.Wednesday)
         {
            list.Add(DayOfWeek.Wednesday);
         }

         if ((days & CalendarDayOfWeek.Thursday) == CalendarDayOfWeek.Thursday)
         {
            list.Add(DayOfWeek.Thursday);
         }

         if ((days & CalendarDayOfWeek.Friday) == CalendarDayOfWeek.Friday)
         {
            list.Add(DayOfWeek.Friday);
         }

         if ((days & CalendarDayOfWeek.Saturday) == CalendarDayOfWeek.Saturday)
         {
            list.Add(DayOfWeek.Saturday);
         }

         if ((days & CalendarDayOfWeek.Sunday) == CalendarDayOfWeek.Sunday)
         {
            list.Add(DayOfWeek.Sunday);
         }

         return list;
      }
コード例 #8
0
ファイル: DateMethods.cs プロジェクト: sulerzh/DbExporter
      /// <summary>
      /// Gets from the specified <see cref="CalendarDayOfWeek"/> a generic list
      /// with the work days.
      /// </summary>
      /// <param name="nonWorkDays">The non working days.</param>
      /// <returns>A list with the working days.</returns>
      public static List<DayOfWeek> GetWorkDays(CalendarDayOfWeek nonWorkDays)
      {
         List<DayOfWeek> workDays = new List<DayOfWeek>();

         for (int i = 0; i < 7; i++)
         {
            workDays.Add((DayOfWeek)i);
         }

         GetSysDaysOfWeek(nonWorkDays).ForEach(day =>
            {
               if (workDays.Contains(day))
               {
                  workDays.Remove(day);
               }
            });

         return workDays;
      }
コード例 #9
0
ファイル: MonthCalendar.cs プロジェクト: sulerzh/DbExporter
      /// <summary>
      /// Initializes a new instance of the <see cref="MonthCalendar"/> class.
      /// </summary>
      public MonthCalendar()
      {
         SetStyle(
               ControlStyles.OptimizedDoubleBuffer
               | ControlStyles.ResizeRedraw
               | ControlStyles.Selectable
               | ControlStyles.AllPaintingInWmPaint
               | ControlStyles.UserPaint
               | ControlStyles.SupportsTransparentBackColor,
               true);

         // initialize menus
         this.InitializeComponent();

         this.extendSelection = false;
         this.showFooter = true;
         this.showWeekHeader = true;
         this.mouseLocation = Point.Empty;
         this.yearSelected = DateTime.MinValue;
         this.monthSelected = DateTime.MinValue;
         this.selectionStart = DateTime.Today;
         this.selectionEnd = DateTime.Today;
         this.currentHitType = MonthCalendarHitType.None;
         this.boldedDates = new List<DateTime>();
         this.boldDatesCollection = new BoldedDatesCollection();
         this.boldDateCategoryCollection = new BoldedDateCategoryCollection(this);
         this.currentMoveBounds = Rectangle.Empty;
         this.mouseMoveFlags = new MonthCalendarMouseMoveFlags();
         this.selectionRanges = new List<SelectionRange>();
         this.daySelectionMode = MonthCalendarSelectionMode.Manual;
         this.nonWorkDays = CalendarDayOfWeek.Saturday | CalendarDayOfWeek.Sunday;
         this.culture = CultureInfo.CurrentUICulture;
         this.cultureCalendar = CultureInfo.CurrentUICulture.DateTimeFormat.Calendar;
         this.eraRanges = GetEraRanges(this.cultureCalendar);
         this.minDate = this.cultureCalendar.MinSupportedDateTime.Date < new DateTime(1900, 1, 1) ? new DateTime(1900, 1, 1) : this.cultureCalendar.MinSupportedDateTime.Date;
         this.maxDate = this.cultureCalendar.MaxSupportedDateTime.Date > new DateTime(9998, 12, 31) ? new DateTime(9998, 12, 31) : this.cultureCalendar.MaxSupportedDateTime.Date;
         this.formatProvider = new MonthCalendarFormatProvider(this.culture, null, this.culture.TextInfo.IsRightToLeft) { MonthCalendar = this };
         this.renderer = new MonthCalendarRenderer(this);
         this.calendarDimensions = new Size(1, 1);
         this.headerFont = new Font("Segoe UI", 9f, FontStyle.Regular);
         this.footerFont = new Font("Arial", 9f, FontStyle.Bold);
         this.dayHeaderFont = new Font("Segoe UI", 8f, FontStyle.Regular);
         this.dayTextAlign = ContentAlignment.MiddleCenter;

         // update year menu
         this.UpdateYearMenu(DateTime.Today.Year);

         // set start date
         this.SetStartDate(new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1));

         this.CalculateSize(true);
      }
コード例 #10
0
ファイル: Calendar.cs プロジェクト: 0anion0/IBN
        /// <summary>
        /// Initializes a new instance of a Calendar.
        /// </summary>
        public Calendar()
            : base()
        {
            #if (DEMO)
            IsDemoVersion = true;
            #endif

            // only check license in design time
            // we don't use runtime license check to make control easier to deploy
            //if(LicenseManager.CurrentContext.UsageMode == LicenseUsageMode.Designtime)
            //	license = LicenseManager.Validate(typeof(Calendar), this);

            _MaxDisplayedItems = 6;
            //_ShowTime = true;
            _AbbreviatedDayNames = true;
            _ViewType = CalendarViewType.MonthView;
            _SelectedDate = DateTime.Now.Date;
            _HighlightedDate = DateTime.Now.Date;
            _Items = new CalendarItemCollection(this);
            //_holidays = new HolidayCollection(this);

            _CalendarItemDefaultStyle = new CssTableItemStyle();
            _CalendarItemHoverStyle = new CssTableItemStyle();
            _CalendarItemSelectedStyle = new CssTableItemStyle();
            _CalendarItemInactiveStyle = new CssTableItemStyle();
            _CalendarItemHolidayStyle = new CssTableItemStyle();
            //_CalendarDefaultStyle = new TableStyle();
            _CalendarHeaderStyle = new CssTableItemStyle();

            _WorkWeek = CalendarDayOfWeek.Monday | CalendarDayOfWeek.Tuesday | CalendarDayOfWeek.Wednesday | CalendarDayOfWeek.Thursday | CalendarDayOfWeek.Friday;
            _FirstDayOfWeek = CalendarDayOfWeek.Sunday;

            _Dates = new DateCollection(this);
        }
コード例 #11
0
ファイル: Helper.cs プロジェクト: 0anion0/IBN
        /*
        /// <summary>
        /// Returns localized week number
        /// </summary>
        /// <param name="dayOfWeek"></param>
        /// <returns></returns>
        internal static int LocalizedDayOfWeek(System.DayOfWeek dayOfWeek)
        {
            // Old way with auto detect based on localization
             int day = dayOfWeek.GetHashCode() - System.Globalization.DateTimeFormatInfo.CurrentInfo.FirstDayOfWeek.GetHashCode();
            // New settings based on setting selected for control
            // int day = dayOfWeek.GetHashCode() - System.Globalization.DateTimeFormatInfo.CurrentInfo.FirstDayOfWeek.GetHashCode();

            if(day<0)
                day+=7;

            return day;
        }
        */
        /// <summary>
        /// Returns localized week number
        /// </summary>
        /// <param name="dayOfWeek"></param>
        /// <returns></returns>
        public static int LocalizedDayOfWeek(System.DayOfWeek dayOfWeek, CalendarDayOfWeek firstDayOfWeek)
        {
            // New settings based on setting selected for control
            int day = dayOfWeek.GetHashCode() - GetDayOfWeek(firstDayOfWeek).GetHashCode();

            if(day<0)
                day+=7;

            return day;
        }
コード例 #12
0
ファイル: Helper.cs プロジェクト: 0anion0/IBN
 /// <summary>
 /// Return true if date is weekend
 /// </summary>
 /// <param name="now"></param>
 /// <param name="workWeek">work week</param>
 /// <returns></returns>
 public static bool IsWeekend(DateTime now, CalendarDayOfWeek workWeek)
 {
     if((Helper.GetCalDayOfWeek(now.DayOfWeek) & workWeek)==0)
         return true;
     else
         return false;
 }
コード例 #13
0
ファイル: Helper.cs プロジェクト: 0anion0/IBN
 /// <summary>
 /// Increments Date
 /// </summary>
 /// <param name="span"></param>
 /// <param name="now"></param>
 /// <returns></returns>
 public static DateTime IncrementDate(TimescaleTopSpan span, DateTime now, CalendarDayOfWeek firstDayOfWeek)
 {
     switch(span)
     {
         case TimescaleTopSpan.Week:
             return now.AddDays(7).AddDays(-(LocalizedDayOfWeek(now.AddDays(7).DayOfWeek, firstDayOfWeek)));
         case TimescaleTopSpan.Month:
             return now.AddMonths(1).AddDays(-now.AddMonths(1).Day+1);
     }
     return now;
 }
コード例 #14
0
ファイル: Helper.cs プロジェクト: 0anion0/IBN
 public static DateTime GetMonthStartDate(DateTime now, DateTime MonthStartDate, CalendarDayOfWeek firstDayOfWeek)
 {
     DateTime monthStart = DateTime.MinValue;
     if(MonthStartDate>DateTime.MinValue)
         monthStart = MonthStartDate;
     else
         monthStart = new DateTime(now.Year, now.Month, 1);
     return monthStart.AddDays(-LocalizedDayOfWeek(monthStart.DayOfWeek, firstDayOfWeek));
 }
コード例 #15
0
ファイル: Helper.cs プロジェクト: 0anion0/IBN
 public static DayOfWeek GetDayOfWeek(CalendarDayOfWeek calDayOfWeek)
 {
     switch(calDayOfWeek)
     {
         case CalendarDayOfWeek.Sunday:
             return DayOfWeek.Sunday;
         case CalendarDayOfWeek.Monday:
             return DayOfWeek.Monday;
         case CalendarDayOfWeek.Tuesday:
             return DayOfWeek.Tuesday;
         case CalendarDayOfWeek.Wednesday:
             return DayOfWeek.Wednesday;
         case CalendarDayOfWeek.Thursday:
             return DayOfWeek.Thursday;
         case CalendarDayOfWeek.Friday:
             return DayOfWeek.Friday;
         case CalendarDayOfWeek.Saturday:
             return DayOfWeek.Saturday;
         default:
             return DayOfWeek.Sunday;
     }
 }
コード例 #16
0
ファイル: Helper.cs プロジェクト: alex765022/IBN
        public static DateTime GetMonthStartDate(DateTime now, DateTime MonthStartDate, CalendarDayOfWeek firstDayOfWeek)
        {
            DateTime monthStart = DateTime.MinValue;

            if (MonthStartDate > DateTime.MinValue)
            {
                monthStart = MonthStartDate;
            }
            else
            {
                monthStart = new DateTime(now.Year, now.Month, 1);
            }
            return(monthStart.AddDays(-LocalizedDayOfWeek(monthStart.DayOfWeek, firstDayOfWeek)));
        }