/// <summary> /// If date is on the weekend, gets the Friday starting that weekend. /// Otherwise gets the NEXT Friday. /// </summary> /// <param name="date">Selected Date.</param> /// <returns></returns> public static DateTime FridayOf(DateTime date) { if (date.DayOfWeek != DayOfWeek.Friday && WeekendDays.Contains(date.DayOfWeek)) { for (DateTime day = date; day.DayOfWeek != DayOfWeek.Thursday; day = day.AddDays(-1)) { if (day.DayOfWeek == DayOfWeek.Friday) { return(day); } } } else if (date.DayOfWeek != DayOfWeek.Friday) { for (DateTime day = date; day.DayOfWeek != DayOfWeek.Saturday; day = day.AddDays(1)) { if (day.DayOfWeek == DayOfWeek.Friday) { return(day); } } } return(date); }
protected void DrawNonWorkHours(PaintEventArgs e, Rectangle rect, DateTime time) { if (m_Renderer.Theme.HasAppColor(UITheme.AppColor.Weekends) && WeekendDays.Contains(time.DayOfWeek)) { var weekendColor = m_Renderer.Theme.GetAppDrawingColor(UITheme.AppColor.Weekends, 128); // If this is also 'today' then convert to gray so it doesn't // impose too much when the today colour is laid on top if (WantDrawToday(time)) { weekendColor = DrawingColor.ToGray(weekendColor); } using (var brush = new SolidBrush(weekendColor)) e.Graphics.FillRectangle(brush, rect); } else if (m_Renderer.Theme.HasAppColor(UITheme.AppColor.NonWorkingHours)) { var nonWorkColor = m_Renderer.Theme.GetAppDrawingColor(UITheme.AppColor.NonWorkingHours, 128); // If this is also 'today' then convert to gray so it doesn't // impose too much when the today colour is laid on top if (WantDrawToday(time)) { nonWorkColor = DrawingColor.ToGray(nonWorkColor); } using (SolidBrush brush = new SolidBrush(nonWorkColor)) { DrawNonWorkHours(e, new HourMin(0, 0), WorkStart, rect, brush); DrawNonWorkHours(e, LunchStart, LunchEnd, rect, brush); DrawNonWorkHours(e, WorkEnd, new HourMin(24, 0), rect, brush); } } }
static void basics() { //********** Basic Features : //formattingOutput(); //onenote : Fundamental Data Types of C# //typeVariablesAndStrings(); //checkedKeywordOverflowException(); //implicitlyTypedLocalVar(); //loops(); //onenote : Parameter modifiers //array(); WeekendDays weekEndDays = WeekendDays.Sun; //enumDemo(weekEndDays); //structDemo(); }
public WeekendProvider(params DayOfWeek[] weekendDays) { WeekendDays = weekendDays; var min = WeekendDays.Min(); var max = WeekendDays.Max(); if (max - min > (min + 7) - max) { FirstWeekendDay = min; LastWeekendDay = max; } else { FirstWeekendDay = max; LastWeekendDay = min; } }
enum WeekendDays : short { Sat = 3, Sun }; //Sun is 4 //functions can take and return instances of enum types ! static void enumDemo(WeekendDays weekEndDays) { Console.WriteLine("\n**** enumDemo() ***"); //ToString() method of enum return name of constant Console.WriteLine($"value of weekEndDays is {weekEndDays}"); //Return numerical value represented by named constant Console.WriteLine($"numeric value is {(short)(weekEndDays)}"); // cast to underlying to get numeric value // Print underlying storage for the enum. Console.WriteLine("WeekendDays uses a {0} for storage", Enum.GetUnderlyingType(weekEndDays.GetType())); // Get all name/value pairs for incoming parameter. Array enumData = Enum.GetValues(weekEndDays.GetType()); for (int i = 0; i < enumData.Length; i++) { Console.WriteLine("Name: {0}, Value: {0:D}", enumData.GetValue(i)); } }
protected override void ExecuteWorkflowLogic() { var result = DateTimeValue.Get(Context.ExecutionContext); var daysToAdd = DaystoAdd.Get(Context.ExecutionContext); var weekendDays = WeekendDays.Get(Context.ExecutionContext).Split('|').Select(t => (DayOfWeek)int.Parse(t)).ToList(); var holidays = new List <DateTime>(); var holidaysQuery = HolidaysQuery.Get(Context.ExecutionContext); if (!string.IsNullOrEmpty(holidaysQuery)) { holidays = QueryWithPaging(new FetchExpression(holidaysQuery)) .Where(t => t.Contains("holiday")) .Select(t => t.GetAttributeValue <DateTime>("holiday").Date) .ToList(); } while (daysToAdd > 0) { result = result.AddDays(1); if (weekendDays.Contains(result.DayOfWeek)) { continue; } if (holidays.Contains(result.Date)) { continue; } daysToAdd--; } Result.Set(Context.ExecutionContext, result); }
public static bool IsWeekendDay(this EDaysOfWeekExt dayOfWeek) { return(WeekendDays.Contains(dayOfWeek)); }
public void LoadPreferences(Preferences prefs, String key, bool appOnly) { if (!appOnly) { // private settings m_PrefsDlg.LoadPreferences(prefs, key); UpdateDayViewPreferences(); } bool taskColorIsBkgnd = prefs.GetProfileBool("Preferences", "ColorTaskBackground", false); m_DayView.TaskColorIsBackground = taskColorIsBkgnd; bool showParentsAsFolder = prefs.GetProfileBool("Preferences", "ShowParentsAsFolders", false); m_DayView.ShowParentsAsFolder = showParentsAsFolder; // Remove for 7.3 ********************************* String fontName = FontName; int fontSize = 8; if (prefs.GetProfileBool("Preferences", "SpecifyTreeFont", false)) { fontName = prefs.GetProfileString("Preferences", "TreeFont", fontName); fontSize = prefs.GetProfileInt("Preferences", "FontSize", fontSize); } SetTaskFont(fontName, fontSize); // ************************************************ // Weekends WeekendDays dwWeekends = (WeekendDays)prefs.GetProfileInt("Preferences", "Weekends", 0); List <System.DayOfWeek> weekendDays = new List <System.DayOfWeek>(); if ((dwWeekends & WeekendDays.SUNDAY) == WeekendDays.SUNDAY) { weekendDays.Add(System.DayOfWeek.Sunday); } if ((dwWeekends & WeekendDays.SATURDAY) == WeekendDays.SATURDAY) { weekendDays.Add(System.DayOfWeek.Saturday); } if ((dwWeekends & WeekendDays.MONDAY) == WeekendDays.MONDAY) { weekendDays.Add(System.DayOfWeek.Monday); } if ((dwWeekends & WeekendDays.TUESDAY) == WeekendDays.TUESDAY) { weekendDays.Add(System.DayOfWeek.Tuesday); } if ((dwWeekends & WeekendDays.WEDNESDAY) == WeekendDays.WEDNESDAY) { weekendDays.Add(System.DayOfWeek.Wednesday); } if ((dwWeekends & WeekendDays.THURSDAY) == WeekendDays.THURSDAY) { weekendDays.Add(System.DayOfWeek.Thursday); } if ((dwWeekends & WeekendDays.FRIDAY) == WeekendDays.FRIDAY) { weekendDays.Add(System.DayOfWeek.Friday); } m_DayView.WeekendDays = weekendDays; // Working hours double hoursInDay = prefs.GetProfileDouble("Preferences", "HoursInDay", 8.0); // assume working days pivot about 1.30pm // eg. a standard working day of 8 hours (+1 for lunch) // starts at 9am (13.50 - 4.5) and // ends at 6pm (13.30 + 4.5) const double MIDDAY = 13.5; const double LUNCHSTARTTIME = (MIDDAY - 0.5); const double LUNCHENDTIME = (MIDDAY + 0.5); double StartOfDay = Math.Max(LUNCHSTARTTIME - (hoursInDay / 2), 0); double EndOfDay = Math.Min(LUNCHENDTIME + (hoursInDay / 2), 24); m_DayView.WorkingHourStart = (int)StartOfDay; m_DayView.WorkingMinuteStart = (int)((StartOfDay - m_DayView.WorkingHourStart) * 60); m_DayView.WorkingHourEnd = (int)EndOfDay; m_DayView.WorkingMinuteEnd = (int)((EndOfDay - m_DayView.WorkingHourEnd) * 60); }
public void LoadPreferences(Preferences prefs, String key, bool appOnly) { HoursInWorkingDay = prefs.GetProfileDouble("Preferences", "HoursInDay", 8.0); StartOfDayInHours = prefs.GetProfileDouble("Preferences", "StartOfWorkdayInHours", 9.0); StartOfLunchInHours = prefs.GetProfileDouble("Preferences", "StartOfLunchInHours", 13.0); if (prefs.GetProfileBool("Preferences", "HasLunchBreak", true)) { EndOfLunchInHours = prefs.GetProfileDouble("Preferences", "EndOfLunchInHours", 14.0); } else { EndOfLunchInHours = StartOfLunchInHours; } bool taskColorIsBkgnd = prefs.GetProfileBool("Preferences", "ColorTaskBackground", false); m_DayView.TaskColorIsBackground = taskColorIsBkgnd; bool showParentsAsFolder = prefs.GetProfileBool("Preferences", "ShowParentsAsFolders", false); m_DayView.ShowParentsAsFolder = showParentsAsFolder; // Weekends WeekendDays dwWeekends = (WeekendDays)prefs.GetProfileInt("Preferences", "Weekends", 0); List <System.DayOfWeek> weekendDays = new List <System.DayOfWeek>(); if ((dwWeekends & WeekendDays.SUNDAY) == WeekendDays.SUNDAY) { weekendDays.Add(System.DayOfWeek.Sunday); } if ((dwWeekends & WeekendDays.SATURDAY) == WeekendDays.SATURDAY) { weekendDays.Add(System.DayOfWeek.Saturday); } if ((dwWeekends & WeekendDays.MONDAY) == WeekendDays.MONDAY) { weekendDays.Add(System.DayOfWeek.Monday); } if ((dwWeekends & WeekendDays.TUESDAY) == WeekendDays.TUESDAY) { weekendDays.Add(System.DayOfWeek.Tuesday); } if ((dwWeekends & WeekendDays.WEDNESDAY) == WeekendDays.WEDNESDAY) { weekendDays.Add(System.DayOfWeek.Wednesday); } if ((dwWeekends & WeekendDays.THURSDAY) == WeekendDays.THURSDAY) { weekendDays.Add(System.DayOfWeek.Thursday); } if ((dwWeekends & WeekendDays.FRIDAY) == WeekendDays.FRIDAY) { weekendDays.Add(System.DayOfWeek.Friday); } m_DayView.WeekendDays = weekendDays; if (!appOnly) { // private settings m_PrefsDlg.LoadPreferences(prefs, key); UpdateDayViewPreferences(); } else { UpdateWorkingHourDisplay(); } }