code: private void readNormalDay(ProjectCalendar calendar, Project.Calendars.Calendar.WeekDays.WeekDay weekDay)
     {
        int dayNumber = weekDay.getDayType().intValue();
        Day day = Day.getInstance(dayNumber);
        calendar.setWorkingDay(day, BooleanHelper.getBoolean(weekDay.isDayWorking()));
        ProjectCalendarHours hours = calendar.addCalendarHours(day);
  
        Project.Calendars.Calendar.WeekDays.WeekDay.WorkingTimes times = weekDay.getWorkingTimes();
        if (times != null)
        {
           for (Project.Calendars.Calendar.WeekDays.WeekDay.WorkingTimes.WorkingTime period : times.getWorkingTime())
           {
              Date startTime = period.getFromTime();
              Date endTime = period.getToTime();
  
              if (startTime != null && endTime != null)
              {
                 if (startTime.getTime() >= endTime.getTime())
                 {
                    endTime = DateHelper.addDays(endTime, 1);
                 }
  
                 hours.addRange(new DateRange(startTime, endTime));
              }
           }
        }
     }
docs: This method extracts data for a normal working day from an MSPDI file.
  
  @param calendar Calendar data
  @param weekDay Day data