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 RecurrenceValues(DateTime myStartDate, int myPeriod, RECUR_FREQUENCY myRecurrenceFrequency)
 {
     startdate           = myStartDate;
     period              = myPeriod;
     recurrencefrequency = myRecurrenceFrequency;
 }