Refactor a subroutine that divides date range into quarters.
I am a bit lost in terms of what you are actually trying to accomplish, but I can give some pointers.

First, leap years do not particularly impact quarters unless you truly have some unique rules. Under normal behaviors, February 29 will be in the same quarter as February 28, and would solidly fall inside quarter 1 in your given scenario. 

Secondly, a quick way to figure out the quarter of a given date (if your quarter system starts at January 1) is the following formula 

Dim currentQuarter as Integer = currentDateTime.Month \ 3 + 1


Similarly, you can perform operations to arrive at quarter beginning and ending dates.

Dim quarterStart = new DateTime(currentDateTime.Year, 3 * (currentQuarter - 1) + 1, 1)
Dim quarterEnd = quarterStart.AddMonths(3).AddSeconds(-1)


For example, using today as the base, you could test the code 

Dim currentDateTime = DateTime.Now

Dim currentQuarter = currentDateTime.Month \ 3 + 1
Dim quarterStart = new DateTime(currentDateTime.Year, 3 * (currentQuarter - 1) + 1, 1)
Dim quarterEnd = quarterStart.AddMonths(3).AddSeconds(-1)

Console.WriteLine(currentQuarter)
Console.WriteLine(quarterStart)
Console.WriteLine(quarterEnd)


And see these results 

2
4/1/2011 12:00:00 AM
6/30/2011 11:59:59 PM