code: private void writeCalendarHours(ProjectCalendar parentCalendar, ProjectCalendarHours record) throws IOException
     {
        m_buffer.setLength(0);
  
        int recordNumber;
  
        if (!parentCalendar.isDerived())
        {
           recordNumber = MPXConstants.BASE_CALENDAR_HOURS_RECORD_NUMBER;
        }
        else
        {
           recordNumber = MPXConstants.RESOURCE_CALENDAR_HOURS_RECORD_NUMBER;
        }
  
        DateRange range1 = record.getRange(0);
        if (range1 == null)
        {
           range1 = DateRange.EMPTY_RANGE;
        }
  
        DateRange range2 = record.getRange(1);
        if (range2 == null)
        {
           range2 = DateRange.EMPTY_RANGE;
        }
  
        DateRange range3 = record.getRange(2);
        if (range3 == null)
        {
           range3 = DateRange.EMPTY_RANGE;
        }
  
        m_buffer.append(recordNumber);
        m_buffer.append(m_delimiter);
        m_buffer.append(format(record.getDay()));
        m_buffer.append(m_delimiter);
        m_buffer.append(format(formatTime(range1.getStart())));
        m_buffer.append(m_delimiter);
        m_buffer.append(format(formatTime(range1.getEnd())));
        m_buffer.append(m_delimiter);
        m_buffer.append(format(formatTime(range2.getStart())));
        m_buffer.append(m_delimiter);
        m_buffer.append(format(formatTime(range2.getEnd())));
        m_buffer.append(m_delimiter);
        m_buffer.append(format(formatTime(range3.getStart())));
        m_buffer.append(m_delimiter);
        m_buffer.append(format(formatTime(range3.getEnd())));
        stripTrailingDelimiters(m_buffer);
        m_buffer.append(MPXConstants.EOL);
  
        m_writer.write(m_buffer.toString());
     }
docs: Write calendar hours.
  
  @param parentCalendar parent calendar instance
  @param record calendar hours instance
  @throws IOException