code: private static void modifyField(Calendar calendar, int field, ModifyType modifyType) {
  		// Console.log("# {} {}", DateField.of(field), calendar.getActualMinimum(field));
  		switch (modifyType) {
  		case TRUNCATE:
  			calendar.set(field, DateUtil.getBeginValue(calendar, field));
  			break;
  		case CEILING:
  			calendar.set(field, DateUtil.getEndValue(calendar, field));
  			break;
  		case ROUND:
  			int min = DateUtil.getBeginValue(calendar, field);
  			int max = DateUtil.getEndValue(calendar, field);
  			int href;
  			if (Calendar.DAY_OF_WEEK == field) {
  				// 星期特殊处理，假设周一是第一天，中间的为周四
  				href = (min + 3) % 7;
  			} else {
  				href = (max - min) / 2 + 1;
  			}
  			int value = calendar.get(field);
  			calendar.set(field, (value < href) ? min : max);
  			break;
  		}
  	}
docs: 修改日期字段值
  
  @param calendar {@link Calendar}
  @param field 字段，见{@link Calendar}
  @param modifyType {@link ModifyType}