code: public boolean isMultiDay() {
  
          if (m_isMultiDay != null) {
              return m_isMultiDay.booleanValue();
          }
  
          Long instanceDuration = getInstanceDuration();
  
          if ((null == instanceDuration) || (instanceDuration.longValue() == 0)) {
              m_isMultiDay = Boolean.FALSE;
              return false;
          }
          if (getInstanceDuration().longValue() > I_CmsSerialDateValue.DAY_IN_MILLIS) {
              m_isMultiDay = Boolean.TRUE;
              return true;
          }
          if (isWholeDay() && (getInstanceDuration().longValue() <= I_CmsSerialDateValue.DAY_IN_MILLIS)) {
              m_isMultiDay = Boolean.FALSE;
              return false;
          }
          Calendar start = new GregorianCalendar();
          start.setTime(m_seriesDefinition.getStart());
          Calendar end = new GregorianCalendar();
          end.setTime(m_seriesDefinition.getEnd());
          if (start.get(Calendar.DAY_OF_MONTH) == end.get(Calendar.DAY_OF_MONTH)) {
              m_isMultiDay = Boolean.FALSE;
              return false;
          }
          m_isMultiDay = Boolean.TRUE;
          return true;
      }
docs: Returns a flag, indicating if the single events last over night.<p>
  
  @return <code>true</code> if the event ends on another day than it starts, <code>false</code> if it ends on the same day