title: Calculating total night time from timespan
body: <p>Suppose night time is set from 20.30h till 6.15h(AM). These 2 parameters are user-scoped variables.
  Suppose you have an arrival date and a departure date which can span from a few minutes to more than one total day.
  How do you calculate the total hours of night time?</p>
  
  <pre><code>public static double CalculateTotalNightTimeHours(DateTime arrival, 
                                                    DateTime departure,
                                                    int nightTimeStartHour, 
                                                    int nightTimeStartMinute, 
                                                    int nightTimeEndHour, 
                                                    int nightTimeEndMinute)
  { 
      //??
  }
  </code></pre>
  
  <p>EDIT: I understand this may be no straight forward yes/no answer, but maybe someone has an elegant solution for this problem.
  To answer the comments : I indeed want to calculate the total number of hours (or minutes) that fall between a user-editable night start and end time. I'm calculating visit time, and the first date is indeed the arrival parameter.</p>
  
  <p>The code I had sofar :</p>
  
  <pre><code>DateTime nightStart = new DateTime( departure.Year, departure.Month, departure.Day,
                                      nightTimeStartHour, nightTimeStartMinute, 0);
  DateTime nightEnd = new DateTime( arrival.Year, arrival.Month, arrival.Day,
                                    nightTimeEndHour, nightTimeEndMinute, 0);
  if (arrival &lt; nightEnd)
  {
      decimal totalHoursNight = (decimal)nightEnd.Subtract(arrival).TotalHours;
  }
  //...
  </code></pre>