public static long sessionMillis(int startDay, LocalTime startTime, int endDay, LocalTime endTime) {
DateTime dt = startTime.toDateTimeToday().withDayOfWeek(startDay);
DateTime dt2 = new DateTime(dt);
if(TradingWeek.naturalDaysBetween(startDay, endDay) > 0) {
dt2 = dt.millisOfDay().withMaximumValue().plusMillis(1);
dt2 = dt2.plusMillis((TradingWeek.naturalDaysBetween(startDay, endDay) - 1) * MILLIS_IN_DAY);
//BUG!!! when startDay == SUNDAY - adds one hour for some reason??? (so we subtract it here)
//dt2 = startDay == DateTimeConstants.SUNDAY ? dt2.minusMillis(3600000) : dt2;
dt2 = dt2.plusMillis(endTime.getMillisOfDay());
}else{