Setting DateTimePicker to last quarter

I have a datetime picker that I am trying to set to "Last Quarter" currently it shows 1/1/2015 - 3-31-2015
not last quarter 10-1-2014 - 12-31-2014

                        DateTime date = DateTime.Now;
                        int Quarter = (date.Month - 1) / 4 + 1;
                        DateTime first = new DateTime(date.Year, 3 * Quarter - 2, 1);
                        DateTime last = new DateTime(date.Year, 3 * Quarter - 2, 1).AddMonths(3).AddDays(-1);
                        dateTimePicker_ReportsStart.Text = first.ToString("MM,dd,yyy 00:00:00");
                        dateTimePicker_ReportsTimeStart.Text = first.ToString("MM,dd,yyy 00:00:00");
                        dateTimePicker_ReportsEnd.Text = last.ToString("MM,dd,yyy 23:59:59");
                        dateTimePicker_ReportsTimeEnd.Text = last.ToString("MM,dd,yyy 23:59:59");

Open in new window

LVL 6
r3nderAsked:
Who is Participating?
 
Shaun KlineConnect With a Mentor Lead Software EngineerCommented:
You appear to be calculating the quarter for today.
Consider changing
DateTime first = new DateTime(date.Year, 3 * Quarter - 2, 1);

Open in new window

to
DateTime first = new DateTime(date.Year, 3 * Quarter - 2, 1).AddMonth(-3);

Open in new window

to get the prior quarter start date.
0
 
AndyAinscowFreelance programmer / ConsultantCommented:
>>int Quarter = (date.Month - 1) / 4 + 1;
Is this what you want:
int Quarter = (date.Month - 3) / 4 + 1;
as there are 3 months in a quarter
0
 
r3nderAuthor Commented:
@Shaun
that fixes first day but not last
First is 10-1-2014 but last is 3-31-2015 and if I add the same logic to last-- I get 9-30-2014
0
 
Shaun KlineConnect With a Mentor Lead Software EngineerCommented:
For the end date, change
DateTime last = new DateTime(date.Year, 3 * Quarter - 2, 1).AddMonths(3).AddDays(-1);

Open in new window

to
DateTime last = first.AddMonths(3).AddDays(-1);

Open in new window

0
 
r3nderAuthor Commented:
Thanks Shaun
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.