Since getting "DateTime.Hours" won't get you the quarter hours on its own, it's not too useful in that respect. "DateTime.TotalHours" almost works, but since a quarter hour is just 15 minutes, we can simplify from dealing with needlessly complex decimal-hours just by using this.
double l = datetime2.Subtract(datetime1).TotalMinutes / 15.0
You can surround this with Math.Round or any similar method to get a round number of quarter hours. Use whatever method fits your preferred rounding style (such as flooring or ceiling...ing). I would recommend Math.Round, myself.
double l = Math.Round(datetime2.Subtract(datetime1).TotalMinutes / 15.0)
And if you want to express this as the total hours with fractions only being quarter hours, you can just divide the rounded result by 4.
double l = Math.Round(datetime2.Subtract(datetime1).TotalMinutes / 15.0) / 4
Now, suppose instead of showing hours in decimal, we wanted to show the quarter-hour difference between two date times as a time-like value. For example, render 11 quarter hours as "2:45" instead of "2.75". This naturally won't work for storing as an actual number, but if you need to output you'd probably build the string like this.
double l = Math.Round(datetime2.Subtract(datetime1).TotalMinutes / 15.0) / 4
double dLeft = Math.Floor(l);
double dRight = (l - dLeft) * 60.0;
string output = dLeft.ToString() + ":" + dRight.ToString();