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

Untitled

By: a guest on Aug 22nd, 2012  |  syntax: JavaScript  |  size: 1.31 KB  |  hits: 10  |  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.         morningMinutes += wholeDays * 6 * 60;
  17.         eveningMinutes += wholeDays * 18 * 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 (startMinutes < 360 || spansDays){
  28.                 if(endMinutes > 360 &&  )
  29.                 {
  30.                         eveningMinutes += endMinutes - 360;
  31.                         if(spansDays)
  32.                                 morningMinutes += 360;
  33.                 }
  34.                 else
  35.                 {
  36.                         morningMinutes += endMinutes;
  37.                 }
  38.         }
  39.         hours.nightHours = math.ceil(morningMinutes / 60);
  40.         hours.dayHours = math.ceil(eveningMinutes/ 60);
  41.         return hours;
  42.     }