message: Issue Islamic Calendar Overflow
  Merge patches from 72-1.
diff: @@ -368,7 +368,7 @@ int32_t IslamicCalendar::yearStart(int32_t year) const{
  if (cType == CIVIL || cType == TBLA ||
  (cType == UMALQURA && (year < UMALQURA_YEAR_START || year > UMALQURA_YEAR_END)))
  {
  - return (year-1)*354 + ClockMath::floorDivide((3+11*year),30);
  + return (year-1)*354 + ClockMath::floorDivide((3+11*(int64_t)year),(int64_t)30);
  } else if(cType==ASTRONOMICAL){
  return trueMonthStart(12*(year-1));
  } else {
  @@ -391,7 +391,7 @@ int32_t IslamicCalendar::monthStart(int32_t year, int32_t month) const {
  if (cType == CIVIL || cType == TBLA) {
  // This does not handle months out of the range 0..11
  return (int32_t)uprv_ceil(29.5*month)
  - + (year-1)*354 + (int32_t)ClockMath::floorDivide((3+11*year),30);
  + + (year-1)*354 + (int32_t)ClockMath::floorDivide((3+11*(int64_t)year),(int64_t)30);
  } else if(cType==ASTRONOMICAL){
  return trueMonthStart(12*(year-1) + month);
  } else {
  @@ -447,7 +447,8 @@ int32_t IslamicCalendar::trueMonthStart(int32_t month) const
  }
  } while (age < 0);
  }
  - start = (int32_t)ClockMath::floorDivide((origin - HIJRA_MILLIS), (double)kOneDay) + 1;
  + start = (int32_t)(ClockMath::floorDivide(
  + (int64_t)((int64_t)origin - HIJRA_MILLIS), (int64_t)kOneDay) + 1);
  CalendarCache::put(&gMonthCache, month, start, status);
  }
  trueMonthStartEnd :
  @@ -639,13 +640,14 @@ void IslamicCalendar::handleComputeFields(int32_t julianDay, UErrorCode &status)
  months--;
  }
  - year = months / 12 + 1;
  - month = months % 12;
  + year = months >= 0 ? ((months / 12) + 1) : ((months + 1 ) / 12);
  + month = ((months % 12) + 12 ) % 12;
  } else if(cType == UMALQURA) {
  int32_t umalquraStartdays = yearStart(UMALQURA_YEAR_START) ;
  if( days < umalquraStartdays){
  //Use Civil calculation
  - year = (int)ClockMath::floorDivide( (double)(30 * days + 10646) , 10631.0 );
  + year = (int32_t)ClockMath::floorDivide(
  + (30 * (int64_t)days + 10646) , (int64_t)10631.0 );
  month = (int32_t)uprv_ceil((days - 29 - yearStart(year)) / 29.5 );
  month = month<11?month:11;
  startDate = monthStart(year, month);
  