It's easiest if you let the DateTime class do the work.
Use the 1st day of the month and calculate to next Saturday. Use the 1st day of the next month and calculate to previous Saturday.
private void onDtPickerValueChanged(object sender, EventArgs e)
{
DateTimePicker dtPicker = (DateTimePicker)sender;
int firstSaturday = 0;
int lastSaturday = 0;
getFirstLastSatuday(dtPicker.Value, out firstSaturday, out lastSaturday);
System.Diagnostics.Debug.WriteLine("First Saturday = {0}, Last Saturday = {1}",
firstSaturday, lastSaturday);
}
private static void getFirstLastSatuday(DateTime date, out int firstDay, out int lastDay)
{
DateTime dateTime = new DateTime(date.Year, date.Month, 1);
int dayofWeek = (int)dateTime.DayOfWeek;
firstDay = 1 + (6 - dayofWeek);
dateTime = dateTime.AddMonths(1);
dayofWeek = (int)dateTime.DayOfWeek;
lastDay = dateTime.AddDays((dayofWeek + 1) * -1).Day;
}