Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Aug 22nd, 2012  |  syntax: JavaScript  |  size: 1.29 KB  |  hits: 13  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
This paste has a previous version, view the difference. Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1.     Public static hourCount TimeCalcHr(DateTime StartTime, Datetime EndTime)
  2.     {
  3.         hourCount hours = new hourCount();
  4.         //everything is in minutes
  5.         integer morningMinutes = 0;
  6.         integer eveningMinutes = 0;
  7.        
  8.         integer startMinutes = StartTime.Hour() * 60 + StartTime.Minute();
  9.         integer endMinutes = EndTime.Hour() * 60 + EndTime.Minute();
  10.         integer wholeDays = startTime.date().daysBetween(EndTime.date());
  11.         bool spansDays = false;
  12.         if (wholeDays > 0){
  13.                 wholeDays --;
  14.                 spansDays = true;
  15.         }
  16.         startMinutes = wholeDays * 12 * 60;
  17.         endMinutes = wholeDays * 12 * 60;
  18.        
  19.         if(startMinutes < 360) //minutes in the first half of the day
  20.         {
  21.             morningMinutes += math.MIN(endMinutes,360) - startMinutes;
  22.         }
  23.         else
  24.         {
  25.                 eveningMinutes += math.MIN(endMinutes,1440) - startMinutes;
  26.         }
  27.         if(endMinutes > 360 && (startMinutes < 360 || spansDays) )
  28.         {
  29.                 eveningMinutes += endMinutes - 360;
  30.                 if(spansDays)
  31.                         morningMinutes += 360;
  32.         }
  33.         else
  34.         {
  35.                 morningMinutes += endMinutes;
  36.         }
  37.         hours.nightHours = math.ceil(eveningMinutes / 60);
  38.         hours.dayHours = math.ceil(morningMinutes / 60);
  39.         return hours;
  40.     }