private void simpleButton6_Click(object sender, EventArgs e) { listBoxControl1.Items.Clear(); MonthlyRecurrenceSettings mo; if (comboBoxEdit1.SelectedIndex == 0) { mo = new MonthlyRecurrenceSettings(dateEdit1.DateTime, dtEndDate.DateTime); } else { mo = new MonthlyRecurrenceSettings(dateEdit1.DateTime, trackBarControl1.Value); } RecurrenceValues values = mo.GetValues(MonthlySpecificDatePartOne.First, MonthlySpecificDatePartTwo.Day, Convert.ToInt32(txtEveryXMonths.Text)); foreach (DateTime dt in values.Values) { listBoxControl1.Items.Add(dt.ToString("d MMM, yyyy ddd")); } textEdit1.Text = values.Values.Count.ToString(); txtStart.Text = values.StartDate.ToString(); txtEnd.Text = values.EndDate.ToString(); }
public static DateTime CalculateDailyRecurrence(RecurrenceValues myRecurrenceValues) { double minutesBetweenMinDateAndStartDate = myRecurrenceValues.startDate.Subtract(minDateGregorian).TotalMinutes; DateTime myRecurrence; // We can use FirstDateTime to find a valid date given a "clip start date" that falls close to dates in our series // For daily recurrences, FirstDateTime will always be a multiple of 1440 (the number of minutes in a day). // We calculate FirstDateTime by taking the start date (as expressed in minutes between minimum date and start date) and modulo the period in minutes. double FirstDateTime = minutesBetweenMinDateAndStartDate % myRecurrenceValues.Period; // Finding a valid recurrence date given a clip start date: Random myRnd = new Random(); DateTime inputDate = myRecurrenceValues.startDate.AddDays(myRnd.Next(1, 28)); double clipStartDateInMinutes = inputDate.Subtract(minDateGregorian).TotalMinutes; double dateOffsetInMinutes = (clipStartDateInMinutes - FirstDateTime) % myRecurrenceValues.Period; if (dateOffsetInMinutes == 0) { myRecurrence = inputDate; } else { myRecurrence = inputDate.AddMinutes(-dateOffsetInMinutes); } return(myRecurrence); }
public static void DisplayValues(Calendar myCal, DateTime myDT, RecurrenceValues myRecurrenceValues, DateTime validRecurrence) { Console.WriteLine("Start Date: {0}/{1}/{2}", myCal.GetMonth(myDT), myCal.GetDayOfMonth(myDT), myCal.GetYear(myDT)); Console.WriteLine("Recurrence Frequency: {0}", myRecurrenceValues.recurrenceFrequency); Console.WriteLine("Period: Every {0} " + "(" + myRecurrenceValues.recurrenceFrequency + ")", myRecurrenceValues.Period); Console.WriteLine("{0}/{1}/{2} is a valid recurrence date in the series.", myCal.GetMonth(validRecurrence), myCal.GetDayOfMonth(validRecurrence), myCal.GetYear(validRecurrence)); Console.WriteLine(); }
private void simpleButton2_Click(object sender, EventArgs e) { listBoxControl1.Items.Clear(); YearlyRecurrenceSettings yr = new YearlyRecurrenceSettings(DateTime.Today, dtEndDate.DateTime); RecurrenceValues values = yr.GetValues(dateEdit1.DateTime.Day, dateEdit1.DateTime.Month); foreach (DateTime dt in values.Values) { listBoxControl1.Items.Add(dt); } textEdit1.Text = values.Values.Count.ToString(); txtStart.Text = values.StartDate.ToString(); txtEnd.Text = values.EndDate.ToString(); }
private void simpleButton5_Click(object sender, EventArgs e) { listBoxControl1.Items.Clear(); MonthlyRecurrenceSettings mo = new MonthlyRecurrenceSettings(dateEdit1.DateTime, dtEndDate.DateTime); RecurrenceValues values = mo.GetValues(Convert.ToInt32(txtDayofMonth.Text), Convert.ToInt32(txtEveryXMonths.Text)); foreach (DateTime dt in values.Values) { listBoxControl1.Items.Add(dt); } textEdit1.Text = values.Values.Count.ToString(); txtStart.Text = values.StartDate.ToString(); txtEnd.Text = values.EndDate.ToString(); }
private void simpleButton3_Click(object sender, EventArgs e) { listBoxControl1.Items.Clear(); YearlyRecurrenceSettings yr = new YearlyRecurrenceSettings(dateEdit1.DateTime, dtEndDate.DateTime); RecurrenceValues values = yr.GetValues(YearlySpecificDatePartOne.Last, YearlySpecificDatePartTwo.Wednesday, YearlySpecificDatePartThree.August); foreach (DateTime dt in values.Values) { listBoxControl1.Items.Add(dt.ToString("d MMM, yyyy ddd")); } textEdit1.Text = values.Values.Count.ToString(); txtStart.Text = values.StartDate.ToString(); txtEnd.Text = values.EndDate.ToString(); }
private void btnGetRecurrenceValues_Click(object sender, EventArgs e) { RecurrenceValues values = RecurrenceHelper.GetRecurrenceValues(txtGetRecurrenceValues.Text); lstRecurrenceValues.Items.Clear(); foreach (DateTime dt in values.Values) { lstRecurrenceValues.Items.Add(new DateItem(dt)); } if (lstRecurrenceValues.Items.Count > 0) { lstRecurrenceValues.SelectedIndex = 0; } txtAdjustedTotal.Text = lstRecurrenceValues.Items.Count.ToString(); }
private void button1_Click_2(object sender, EventArgs e) { RecurrenceValues values = RecurrenceHelper.GetPostRecurrenceValues(txtGetRecurrenceValues.Text, dateTimePicker1.Value); txtGetRecurrenceValues.Text = values.GetSeriesInfo(); lstRecurrenceValues.Items.Clear(); foreach (DateTime dt in values.Values) { lstRecurrenceValues.Items.Add(new DateItem(dt)); } if (lstRecurrenceValues.Items.Count > 0) { lstRecurrenceValues.SelectedIndex = 0; } txtAdjustedTotal.Text = lstRecurrenceValues.Items.Count.ToString(); }
public static DateTime CalculateValidRecurrence(RecurrenceValues myRecurrenceValues, DateTime myRecurrence) { switch (myRecurrenceValues.recurrenceFrequency) // This will be daily, weekly, or monthly/yearly. { case RECUR_FREQUENCY.DAYS_IN_MINUTES: return(CalculateDailyRecurrence(myRecurrenceValues)); case RECUR_FREQUENCY.WEEKS: return(CalculateWeeklyRecurrence(myRecurrenceValues)); case RECUR_FREQUENCY.MONTHS: return(CalculateMonthlyOrYearlyRecurrence(myRecurrenceValues)); default: return(new DateTime()); } }
private static DateTime CalculateWeeklyRecurrence(RecurrenceValues myRecurrenceValues) { // Find the date of the first day of the week prior to the start date. DateTime modifiedStartDate = myRecurrenceValues.startDate.AddDays(-(int)myRecurrenceValues.startDate.DayOfWeek); // Calculate the number of minutes between midnight that day and midnight January 1, 1601. double modifiedStartDateInMinutes = modifiedStartDate.Subtract(minDateGregorian).TotalMinutes; // Take that value modulo the value of the Period field x 10080 (# of minutes in a week) to get the value of FirstDateTime. double FirstDateTime = modifiedStartDateInMinutes % (myRecurrenceValues.Period * 10080); // Get an input date close to the start date. (Add 3 to 7 weeks in days to the start date.) Random myRnd = new Random(); DateTime inputDate = myRecurrenceValues.startDate.AddDays(myRnd.Next(21, 49)); // Adjust to the start of the week since we're only looking for a valid week... inputDate = inputDate.AddDays(-(int)inputDate.DayOfWeek); // Get the input date in minutes double inputDateInMinutes = inputDate.Subtract(minDateGregorian).TotalMinutes; DateTime myRecurrence; // If the date offset is zero, the week is valid. Otherwise we subtract the offset from the input date // to find a valid week. double dateOffsetInMinutes = (inputDateInMinutes - FirstDateTime) % (myRecurrenceValues.Period * 10080); if (dateOffsetInMinutes == 0) { // if zero, the week is valid myRecurrence = inputDate; } else { // If non-zero, this is not a valid week. This value must be subtracted from the input date to return a valid week. myRecurrence = inputDate.AddMinutes(-dateOffsetInMinutes); } // Note that finding a valid day in a multi-days/week pattern requires using the PatternTypeSpecific value. // We're just assuming a 1x / week pattern based on the start date. myRecurrence = myRecurrence.AddDays((int)myRecurrenceValues.startDate.DayOfWeek); return(myRecurrence); }
public static void Main() { DateTime myStartDate; int myPeriod; for (RECUR_FREQUENCY myRecurrenceFrequency = RECUR_FREQUENCY.DAYS_IN_MINUTES; myRecurrenceFrequency <= RECUR_FREQUENCY.MONTHS; myRecurrenceFrequency++) { switch (myRecurrenceFrequency) { case RECUR_FREQUENCY.DAYS_IN_MINUTES: myPeriod = 4320; // every 3 days myStartDate = DateTime.Today; // Use today's date break; case RECUR_FREQUENCY.WEEKS: myPeriod = 2; // every 2 weeks myStartDate = DateTime.Today.AddYears(-1); // Use a year ago from today break; case RECUR_FREQUENCY.MONTHS: myPeriod = 12; // every 12 months myStartDate = new DateTime(2008, 4, 6); // Use April 6, 2008 break; default: myPeriod = 1; myStartDate = DateTime.Today; break; } RecurrenceValues myRecurrenceValues = new RecurrenceValues(myStartDate, myPeriod, myRecurrenceFrequency); DateTime validRecurrence = CalculateValidRecurrence(myRecurrenceValues, myRecurrenceValues.startDate); if (myRecurrenceFrequency == RECUR_FREQUENCY.MONTHS) { break; } else { DisplayValues(myCal, myRecurrenceValues.startDate, myRecurrenceValues, validRecurrence); } } }
public static DateTime CalculateMonthlyOrYearlyRecurrence(RecurrenceValues myRecurrenceValues) { // Find the first day of the month of the start date DateTime modifiedStartDate = myRecurrenceValues.startDate.AddDays(-myHebrewCal.GetDayOfMonth(myRecurrenceValues.startDate) + 1); // Find the number of months between 9/27/1601 and our start date int monthsBetweenTwoDates = CalculateNumberOfMonthsBetweenTwoDates(minDateHebrew, modifiedStartDate); // Take that number of months and modulo the period to get an offset to add to the minimum Hebrew Calendar date (9/27/1601) int offsetInMonths = monthsBetweenTwoDates % (myRecurrenceValues.Period); // Add that number of Hebrew Lunar months to 9/27/1601. DateTime recurrenceOffsetDate = new DateTime(); recurrenceOffsetDate = myHebrewCal.AddMonths(minDateHebrew, offsetInMonths); // Calculate the number of minutes between midnight that day and midnight, January 1, 1601. This is our recurrence offset (FirstDateTime), in minutes. double FirstDateTime = new TimeSpan(recurrenceOffsetDate.Ticks - minDateGregorian.Ticks).TotalMinutes; // Since we're just calculating FirstDateTime, just return the start date return(myRecurrenceValues.startDate); }
/// <summary> /// Get a Generic List of IRecurrenceItem objects /// </summary> /// <param name="recurrenceSettings"></param> /// <returns>List<IRecurrenceItem></returns> public RecurrenceValues GetRecurrenceItems(RecurrenceSettings recurrenceSettings) { RecurrenceValues returnValues = recurrenceSettings.GetValues(); return(returnValues); }
public List <TemplateEvents> getEvents(T_Schedule task)//mahesh { ApplicationContext dbschedule = new ApplicationContext(new SystemUser()); List <TemplateEvents> result = new List <TemplateEvents>(); //var ScheduledStartTime = task.T_StartTime.Value.ToLongTimeString(); //var ScheduledEndTime = task.T_EndTime.Value.ToLongTimeString(); var ScheduledStartTime = TimeZoneInfo.ConvertTimeFromUtc(task.T_StartTime.Value, task.m_Timezone).ToLongTimeString(); //mahesh var ScheduledEndTime = TimeZoneInfo.ConvertTimeFromUtc(task.T_EndTime.Value, task.m_Timezone).ToLongTimeString(); //mahesh //task.T_StartDateTime = Convert.ToDateTime(task.T_StartDateTime.ToLongDateString() + " " + task.T_StartTime.Value.ToLongTimeString()); task.T_StartDateTime = Convert.ToDateTime(task.T_StartDateTime.ToLongDateString() + " " + ScheduledStartTime);//mahesh var ScheduledDateTimeEnd = DateTime.UtcNow.AddYears(1); var occurrences = task.T_OccurrenceLimitCount != null ? task.T_OccurrenceLimitCount : 0; var skip = task.T_RecurringRepeatFrequencyID != null?Convert.ToInt32(task.T_RecurringRepeatFrequencyID) : 0; if (task.T_AssociatedScheduleTypeID == 1) { TemplateEvents obj = new TemplateEvents(); obj.EventDate = task.T_StartDateTime; obj.StartTime = task.T_StartDateTime; obj.Title = task.T_Name; obj.EndTime = Convert.ToDateTime(task.T_StartDateTime.ToShortDateString() + " " + ScheduledEndTime); result.Add(obj); return(result); } if (task.T_RecurringTaskEndTypeID == 3) { //ScheduledDateTimeEnd = task.T_EndDate.Value; task.T_EndDate = TimeZoneInfo.ConvertTimeFromUtc(task.T_EndDate.Value, task.m_Timezone);//mahesh try { ScheduledDateTimeEnd = AbsoluteEnd(task.T_EndDate.Value); } catch { ScheduledDateTimeEnd = task.T_EndDate.Value; } } if (task.T_AssociatedRecurringScheduleDetailsTypeID == 1) { DailyRecurrenceSettings we; if (task.T_RecurringTaskEndTypeID == 2) { we = new DailyRecurrenceSettings(task.T_StartDateTime, occurrences.Value); } else { we = new DailyRecurrenceSettings(task.T_StartDateTime, ScheduledDateTimeEnd); } var values = we.GetValues(skip); foreach (var evt in values.Values) { TemplateEvents obj = new TemplateEvents(); obj.EventDate = evt; obj.StartTime = evt; obj.Title = task.T_Name; obj.EndTime = Convert.ToDateTime(evt.ToShortDateString() + " " + ScheduledEndTime); result.Add(obj); } } if (task.T_AssociatedRecurringScheduleDetailsTypeID == 2) { WeeklyRecurrenceSettings we; SelectedDayOfWeekValues selectedValues = new SelectedDayOfWeekValues(); if (task.T_RecurringTaskEndTypeID == 2) { we = new WeeklyRecurrenceSettings(task.T_StartDateTime, occurrences.Value); } else { we = new WeeklyRecurrenceSettings(task.T_StartDateTime, ScheduledDateTimeEnd); } selectedValues.Sunday = task.SelectedT_RecurrenceDays_T_RepeatOn.ToList().Contains(1); selectedValues.Monday = task.SelectedT_RecurrenceDays_T_RepeatOn.ToList().Contains(2); selectedValues.Tuesday = task.SelectedT_RecurrenceDays_T_RepeatOn.ToList().Contains(3); selectedValues.Wednesday = task.SelectedT_RecurrenceDays_T_RepeatOn.ToList().Contains(4); selectedValues.Thursday = task.SelectedT_RecurrenceDays_T_RepeatOn.ToList().Contains(5); selectedValues.Friday = task.SelectedT_RecurrenceDays_T_RepeatOn.ToList().Contains(6); selectedValues.Saturday = task.SelectedT_RecurrenceDays_T_RepeatOn.ToList().Contains(7); var values = we.GetValues(skip, selectedValues); foreach (var evt in values.Values) { TemplateEvents obj = new TemplateEvents(); obj.EventDate = evt; obj.StartTime = evt; obj.Title = task.T_Name; obj.EndTime = Convert.ToDateTime(evt.ToShortDateString() + " " + ScheduledEndTime); result.Add(obj); } } if (task.T_AssociatedRecurringScheduleDetailsTypeID == 3) { MonthlyRecurrenceSettings we; if (task.T_RecurringTaskEndTypeID == 2) { we = new MonthlyRecurrenceSettings(task.T_StartDateTime, occurrences.Value); } else { we = new MonthlyRecurrenceSettings(task.T_StartDateTime, ScheduledDateTimeEnd); } we.AdjustmentValue = 0; skip = skip++; RecurrenceValues value = new RecurrenceValues(); if (task.T_RepeatByID == 3) { value = we.GetValues(MonthlySpecificDatePartOne.Last, MonthlySpecificDatePartTwo.Day, skip); } if (task.T_RepeatByID == 4) { value = we.GetValues(MonthlySpecificDatePartOne.First, MonthlySpecificDatePartTwo.Day, skip); } if (task.T_RepeatByID == 1) { value = we.GetValues(task.T_StartDateTime.Day, skip); } if (task.T_RepeatByID == 2) { value = we.GetValues(MonthlySpecificDatePartOne.Last, MonthlySpecificDatePartTwo.WeekendDay, skip); } foreach (var evt in value.Values) { TemplateEvents obj = new TemplateEvents(); obj.EventDate = evt; obj.StartTime = evt; obj.Title = task.T_Name; obj.EndTime = Convert.ToDateTime(evt.ToShortDateString() + " " + ScheduledEndTime); result.Add(obj); } } if (task.T_AssociatedRecurringScheduleDetailsTypeID == 4) { YearlyRecurrenceSettings we; if (task.T_RecurringTaskEndTypeID == 2) { we = new YearlyRecurrenceSettings(task.T_StartDateTime, occurrences.Value); } else { we = new YearlyRecurrenceSettings(task.T_StartDateTime, ScheduledDateTimeEnd); } var values = we.GetValues(task.T_StartDateTime.Day, task.T_StartDateTime.Month); foreach (var evt in values.Values) { TemplateEvents obj = new TemplateEvents(); obj.EventDate = evt; obj.StartTime = evt; obj.Title = task.T_Name; obj.EndTime = Convert.ToDateTime(evt.ToShortDateString() + " " + ScheduledEndTime); result.Add(obj); } } //return Json(result, "application/json", System.Text.Encoding.UTF8, JsonRequestBehavior.AllowGet); return(result); }
private static void CalculateRecurrenceEnd(this Appointment appt) { Recurrence recur = appt.Recurrence; int occurrences = recur.EndCount; DateTime start = appt.StartDate; RecurrenceValues values = null; if (recur.Type == RepeatType.Daily) { DailyRecurrenceSettings daily = new DailyRecurrenceSettings(start, occurrences); if (recur.Day != "-1") { values = daily.GetValues(int.Parse(recur.Day), DailyRegenType.OnEveryXDays); } else { values = daily.GetValues(1, DailyRegenType.OnEveryWeekday); } recur.EndCount = daily.NumberOfOccurrences; } else if (recur.Type == RepeatType.Weekly) { WeeklyRecurrenceSettings weekly = new WeeklyRecurrenceSettings(start, occurrences); SelectedDayOfWeekValues sdwv = new SelectedDayOfWeekValues(); sdwv.Sunday = recur.Day.IndexOf('0') != -1; sdwv.Monday = recur.Day.IndexOf('1') != -1; sdwv.Tuesday = recur.Day.IndexOf('2') != -1; sdwv.Wednesday = recur.Day.IndexOf('3') != -1; sdwv.Thursday = recur.Day.IndexOf('4') != -1; sdwv.Friday = recur.Day.IndexOf('5') != -1; sdwv.Saturday = recur.Day.IndexOf('6') != -1; values = weekly.GetValues(recur.Week, sdwv); recur.EndCount = weekly.NumberOfOccurrences; } else if (recur.Type == RepeatType.Monthly) { MonthlyRecurrenceSettings monthly = new MonthlyRecurrenceSettings(start, occurrences); if (recur.Week == -1) { values = monthly.GetValues(int.Parse(recur.Day), recur.Month); } else { values = monthly.GetValues((MonthlySpecificDatePartOne)recur.Week, (MonthlySpecificDatePartTwo)int.Parse(recur.Day), recur.Month); } recur.EndCount = monthly.NumberOfOccurrences; } else if (recur.Type == RepeatType.Yearly) { YearlyRecurrenceSettings yearly = new YearlyRecurrenceSettings(start, occurrences); if (recur.Week == -1) { values = yearly.GetValues(int.Parse(recur.Day), recur.Month + 1, recur.Year); } else { values = yearly.GetValues((YearlySpecificDatePartOne)recur.Week, (YearlySpecificDatePartTwo)int.Parse(recur.Day), (YearlySpecificDatePartThree)(recur.Month + 1), recur.Year); } recur.EndCount = yearly.NumberOfOccurrences; } recur.EndDate = values.EndDate; }
private void UpdateDisplay() { try { int occurrences = int.Parse(rangeRadio2Text1.Text); DateTime start = (DateTime)startDate.SelectedDate; DateTime?end = rangeRadio3Picker1.SelectedDate; if (dailyTab.IsSelected) { DailyRecurrenceSettings daily; if (rangeRadio3.IsChecked == true) { daily = new DailyRecurrenceSettings(start, (DateTime)end); } else { daily = new DailyRecurrenceSettings(start, occurrences); } if (dailyRadio1.IsChecked == true) { values = daily.GetValues(int.Parse(dailyRadio1Text1.Text), DailyRegenType.OnEveryXDays); } else if (dailyRadio2.IsChecked == true) { values = daily.GetValues(1, DailyRegenType.OnEveryWeekday); } rangeRadio2Text1.Text = daily.NumberOfOccurrences.ToString(); } else if (weeklyTab.IsSelected) { WeeklyRecurrenceSettings weekly; if (rangeRadio3.IsChecked == true) { weekly = new WeeklyRecurrenceSettings(start, (DateTime)end); } else { weekly = new WeeklyRecurrenceSettings(start, occurrences); } SelectedDayOfWeekValues sdwv = new SelectedDayOfWeekValues(); sdwv.Sunday = (bool)weeklySunday.IsChecked; sdwv.Monday = (bool)weeklyMonday.IsChecked; sdwv.Tuesday = (bool)weeklyTuesday.IsChecked; sdwv.Wednesday = (bool)weeklyWednesday.IsChecked; sdwv.Thursday = (bool)weeklyThursday.IsChecked; sdwv.Friday = (bool)weeklyFriday.IsChecked; sdwv.Saturday = (bool)weeklySaturday.IsChecked; values = weekly.GetValues(int.Parse(weeklyText1.Text), sdwv); rangeRadio2Text1.Text = weekly.NumberOfOccurrences.ToString(); } else if (monthlyTab.IsSelected) { MonthlyRecurrenceSettings monthly; if (rangeRadio3.IsChecked == true) { monthly = new MonthlyRecurrenceSettings(start, (DateTime)end); } else { monthly = new MonthlyRecurrenceSettings(start, occurrences); } if (monthlyRadio1.IsChecked == true) { values = monthly.GetValues(int.Parse(monthlyRadio1Text1.Text), int.Parse(monthlyText1.Text)); } else if (monthlyRadio2.IsChecked == true) { values = monthly.GetValues((MonthlySpecificDatePartOne)monthlyRadio2Combo1.SelectedIndex, (MonthlySpecificDatePartTwo)monthlyRadio2Combo2.SelectedIndex, int.Parse(monthlyText1.Text)); } rangeRadio2Text1.Text = monthly.NumberOfOccurrences.ToString(); } else if (yearlyTab.IsSelected) { YearlyRecurrenceSettings yearly; if (rangeRadio3.IsChecked == true) { yearly = new YearlyRecurrenceSettings(start, (DateTime)end); } else { yearly = new YearlyRecurrenceSettings(start, occurrences); } if (yearlyRadio1.IsChecked == true) { values = yearly.GetValues(int.Parse(yearlyRadio1Text1.Text), yearlyRadio1Combo1.SelectedIndex + 1, int.Parse(yearlyText1.Text)); } else if (yearlyRadio2.IsChecked == true) { values = yearly.GetValues((YearlySpecificDatePartOne)yearlyRadio2Combo1.SelectedIndex, (YearlySpecificDatePartTwo)yearlyRadio2Combo2.SelectedIndex, (YearlySpecificDatePartThree)(yearlyRadio2Combo3.SelectedIndex + 1), int.Parse(yearlyText1.Text)); } rangeRadio2Text1.Text = yearly.NumberOfOccurrences.ToString(); } if (rangeRadio3.IsChecked == false) { _suspendUpdateRangeRadio3Picker1 = true; rangeRadio3Picker1.SelectedDate = values.EndDate; } } catch { } }
private void button1_Click(object sender, EventArgs e) { RecurrenceValues values = null; switch (tabControl1.SelectedIndex) { case 0: // Daily DailyRecurrenceSettings da; if (radioOccurrences.Checked) { da = new DailyRecurrenceSettings(dtStartDate.Value, Convert.ToInt32(txtOccurrences.Text)); } else { da = new DailyRecurrenceSettings(dtStartDate.Value, dtEndDate.Value); } if (radioButton1.Checked) { values = da.GetValues(int.Parse(textBox1.Text)); } else { values = da.GetValues(1, DailyRegenType.OnEveryWeekday); } break; case 1: // Weekly WeeklyRecurrenceSettings we; SelectedDayOfWeekValues selectedValues = new SelectedDayOfWeekValues(); if (radioOccurrences.Checked) { we = new WeeklyRecurrenceSettings(dtStartDate.Value, Convert.ToInt32(txtOccurrences.Text)); } else { we = new WeeklyRecurrenceSettings(dtStartDate.Value, dtEndDate.Value); } selectedValues.Sunday = chkSunday.Checked; selectedValues.Monday = chkMonday.Checked; selectedValues.Tuesday = chkTuesday.Checked; selectedValues.Wednesday = chkWednesday.Checked; selectedValues.Thursday = chkThursday.Checked; selectedValues.Friday = chkFriday.Checked; selectedValues.Saturday = chkSaturday.Checked; values = we.GetValues(int.Parse(txtWeeklyRegenXWeeks.Text), selectedValues); break; case 2: // Monthly MonthlyRecurrenceSettings mo; if (radioOccurrences.Checked) { mo = new MonthlyRecurrenceSettings(dtStartDate.Value, Convert.ToInt32(txtOccurrences.Text)); } else { mo = new MonthlyRecurrenceSettings(dtStartDate.Value, dtEndDate.Value); } if (radioButton3.Checked) { values = mo.GetValues(int.Parse(textBox4.Text), Convert.ToInt32(textBox2.Text)); } else { // Get the adjusted values mo.AdjustmentValue = int.Parse(txtMonthlyAdjustedValue.Text); values = mo.GetValues((MonthlySpecificDatePartOne)comboBox2.SelectedIndex, (MonthlySpecificDatePartTwo)comboBox3.SelectedIndex, int.Parse(textBox3.Text)); } break; case 3: // Yearly YearlyRecurrenceSettings yr; if (radioOccurrences.Checked) { yr = new YearlyRecurrenceSettings(dtStartDate.Value, Convert.ToInt32(txtOccurrences.Text)); } else { yr = new YearlyRecurrenceSettings(dtStartDate.Value, dtEndDate.Value); } if (radioYearlyEvery.Checked) { values = yr.GetValues(int.Parse(txtYearEvery.Text), cboYearEveryMonth.SelectedIndex + 1); } else { // Get the adjusted value yr.AdjustmentValue = int.Parse(txtYearlyAdjustedValue.Text); values = yr.GetValues((YearlySpecificDatePartOne)comboBox5.SelectedIndex, (YearlySpecificDatePartTwo)comboBox4.SelectedIndex, (YearlySpecificDatePartThree)(comboBox6.SelectedIndex + 1)); } break; } txtSeriesInfo.Text = values.GetSeriesInfo(); txtGetRecurrenceValues.Text = txtSeriesInfo.Text; lstResults.Items.Clear(); DateTime[] bolded = new DateTime[values.Values.Count]; int counter = 0; foreach (DateTime dt in values.Values) { bolded[counter] = dt; lstResults.Items.Add(new DateItem(dt)); counter++; } monthCalendar1.BoldedDates = bolded; if (lstResults.Items.Count > 0) { lstResults.SelectedIndex = 0; } txtTotal.Text = lstResults.Items.Count.ToString(); txtEndDate.Text = values.EndDate.ToShortDateString(); txtStartDate.Text = values.StartDate.ToShortDateString(); btnGetNextDate.Enabled = lstResults.Items.Count > 0; txtNextDate.Text = string.Empty; lstRecurrenceValues.Items.Clear(); tabMain.SelectedTab = tabSecond; txtAdjustedTotal.Text = lstRecurrenceValues.Items.Count.ToString(); // Get reccurrence info object to use for setting controls RecurrenceInfo info = RecurrenceHelper.GetFriendlySeriesInfo(values.GetSeriesInfo()); dateTimePickerStartDate.Value = info.StartDate; if (info.EndDate.HasValue) { dateTimePickerStartDateEndDate.Value = info.EndDate.Value; dtAdjustedDateTime.Value = info.EndDate.Value; dateTimePicker1.Value = info.EndDate.Value; } }