docs: public void norm_setBaseRelated() {
          String[] time_grid = new String[6];
          time_grid = timeBaseText.split("-");
          int[] ini = new int[6];
          for (int i = 0; i < 6; i++) {
              ini[i] = Integer.parseInt(time_grid[i]);
          }
  
          Calendar calendar = Calendar.getInstance();
          calendar.setFirstDayOfWeek(Calendar.MONDAY);
          calendar.set(ini[0], ini[1] - 1, ini[2], ini[3], ini[4], ini[5]);
          calendar.getTime();
  
          //year, month, day, hour, min, second
          boolean[] flag = {false, false, false, false, false, false};//观察时间表达式是否因当前相关时间表达式而改变时间
  
          String rule = "\\d+(?=天[以之]?前)";
          Pattern pattern = Pattern.compile(rule);
          Matcher match = pattern.matcher(Time_Expression);
          if (match.find()) {
              flag[2] = true;
              int day = Integer.parseInt(match.group());
              calendar.add(Calendar.DATE, -day);
          }
  
          rule = "\\d+(?=天[以之]?后)";
          pattern = Pattern.compile(rule);
          match = pattern.matcher(Time_Expression);
          if (match.find()) {
              flag[2] = true;
              int day = Integer.parseInt(match.group());
              calendar.add(Calendar.DATE, day);
          }
  
          rule = "\\d+(?=(个)?月[以之]?前)";
          pattern = Pattern.compile(rule);
          match = pattern.matcher(Time_Expression);
          if (match.find()) {
              flag[1] = true;
              int month = Integer.parseInt(match.group());
              calendar.add(Calendar.MONTH, -month);
          }
  
          rule = "\\d+(?=(个)?月[以之]?后)";
          pattern = Pattern.compile(rule);
          match = pattern.matcher(Time_Expression);
          if (match.find()) {
              flag[1] = true;
              int month = Integer.parseInt(match.group());
              calendar.add(Calendar.MONTH, month);
          }
  
          rule = "\\d+(?=年[以之]?前)";
          pattern = Pattern.compile(rule);
          match = pattern.matcher(Time_Expression);
          if (match.find()) {
              flag[0] = true;
              int year = Integer.parseInt(match.group());
              calendar.add(Calendar.YEAR, -year);
          }
  
          rule = "\\d+(?=年[以之]?后)";
          pattern = Pattern.compile(rule);
          match = pattern.matcher(Time_Expression);
          if (match.find()) {
              flag[0] = true;
              int year = Integer.parseInt(match.group());
              calendar.add(Calendar.YEAR, year);
          }
  
          /////////////////////新支持各类之前/之后 //////	//added by zhu
          rule = "\\d+(?=小时[以之]?前)";
          pattern = Pattern.compile(rule);
          match = pattern.matcher(Time_Expression);
          if (match.find()) {
              flag[4] = true;
              int hour = Integer.parseInt(match.group());
              long ms = calendar.getTime().getTime() - hour * 3600 * 1000;
              calendar.setTimeInMillis(ms);
          }
  
          rule = "\\d+(?=小时[以之]?后)";
          pattern = Pattern.compile(rule);
          match = pattern.matcher(Time_Expression);
          if (match.find()) {
              flag[4] = true;
              int hour = Integer.parseInt(match.group());
              long ms = calendar.getTime().getTime() + hour * 3600 * 1000;
              calendar.setTimeInMillis(ms);
          }
  
          rule = "半个?小时[以之]?前";
          pattern = Pattern.compile(rule);
          match = pattern.matcher(Time_Expression);
          if (match.find()) {
              flag[4] = true;
              long ms = calendar.getTime().getTime() - 1800 * 1000;
              calendar.setTimeInMillis(ms);
          }
  
          rule = "半个?小时[以之]?后";
          pattern = Pattern.compile(rule);
          match = pattern.matcher(Time_Expression);
          if (match.find()) {
              flag[4] = true;
              long ms = calendar.getTime().getTime() + 1800 * 1000;
              calendar.setTimeInMillis(ms);
          }
  
          rule = "\\d+(?=刻钟[以之]?前)";
          pattern = Pattern.compile(rule);
          match = pattern.matcher(Time_Expression);
          if (match.find()) {
              flag[4] = true;
              int q = Integer.parseInt(match.group());
              long ms = calendar.getTime().getTime() - q * 15 * 60 * 1000;
              calendar.setTimeInMillis(ms);
          }
  
          rule = "\\d+(?=刻钟[以之]?后)";
          pattern = Pattern.compile(rule);
          match = pattern.matcher(Time_Expression);
          if (match.find()) {
              flag[4] = true;
              int q = Integer.parseInt(match.group());
              long ms = calendar.getTime().getTime() + q * 15 * 60 * 1000;
              calendar.setTimeInMillis(ms);
          }
  
          rule = "\\d+(?=分钟?[以之]?前)";
          pattern = Pattern.compile(rule);
          match = pattern.matcher(Time_Expression);
          if (match.find()) {
              flag[4] = true;
              int min = Integer.parseInt(match.group());
              long ms = calendar.getTime().getTime() - min * 60 * 1000;
              calendar.setTimeInMillis(ms);
          }
  
          rule = "\\d+(?=分钟?[以之]?后)";
          pattern = Pattern.compile(rule);
          match = pattern.matcher(Time_Expression);
          if (match.find()) {
              flag[4] = true;
              int min = Integer.parseInt(match.group());
              long ms = calendar.getTime().getTime() + min * 60 * 1000;
              calendar.setTimeInMillis(ms);
          }
  
          rule = "半分钟?[以之]?前";
          pattern = Pattern.compile(rule);
          match = pattern.matcher(Time_Expression);
          if (match.find()) {
              flag[4] = true;
              long ms = calendar.getTime().getTime() - 30 * 1000;
              calendar.setTimeInMillis(ms);
          }
  
          rule = "半分钟?[以之]?后";
          pattern = Pattern.compile(rule);
          match = pattern.matcher(Time_Expression);
          if (match.find()) {
              flag[4] = true;
              long ms = calendar.getTime().getTime() + 30 * 1000;
              calendar.setTimeInMillis(ms);
          }
  
          rule = "\\d+(?=秒钟?[以之]?前)";
          pattern = Pattern.compile(rule);
          match = pattern.matcher(Time_Expression);
          if (match.find()) {
              flag[5] = true;
              int sec = Integer.parseInt(match.group());
              long ms = calendar.getTime().getTime() - sec * 1000;
              calendar.setTimeInMillis(ms);
          }
  
          rule = "\\d+(?=秒钟?[以之]?后)";
          pattern = Pattern.compile(rule);
          match = pattern.matcher(Time_Expression);
          if (match.find()) {
              flag[5] = true;
              int sec = Integer.parseInt(match.group());
              long ms = calendar.getTime().getTime() + sec * 1000;
              calendar.setTimeInMillis(ms);
          }
  
          rule = "半秒钟?[以之]?前";
          pattern = Pattern.compile(rule);
          match = pattern.matcher(Time_Expression);
          if (match.find()) {
              flag[5] = true;
              long ms = calendar.getTime().getTime() - 500;
              calendar.setTimeInMillis(ms);
          }
  
          rule = "半秒钟?[以之]?后";
          pattern = Pattern.compile(rule);
          match = pattern.matcher(Time_Expression);
          if (match.find()) {
              flag[5] = true;
              long ms = calendar.getTime().getTime() + 500;
              calendar.setTimeInMillis(ms);
          }
  
          rule = "(\\d+)((周|星期)?[以之]?后)";
          pattern = Pattern.compile(rule);
          match = pattern.matcher(Time_Expression);
          if (match.find()) {
              flag[2] = true;
              int week = Integer.parseInt(match.group(1));
              long ms = calendar.getTime().getTime() + week * 7 * 24 * 3600 * 1000;
              calendar.setTimeInMillis(ms);
          }
  
          rule = "(\\d+)((周|星期)?[以之]?前)";
          pattern = Pattern.compile(rule);
          match = pattern.matcher(Time_Expression);
          if (match.find()) {
              flag[2] = true;
              String weekText = match.group(1);
              int week = Integer.parseInt(match.group(1));
              long ms = calendar.getTime().getTime() - week * 7 * 24 * 3600 * 1000;
              calendar.setTimeInMillis(ms);
          }
          ///////////////////////////////////////
  
          String s = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(calendar.getTime());
          String[] time_fin = s.split("-");
          if (flag[0] || flag[1] || flag[2] || flag[3] || flag[4] || flag[5]) {
              _tp.tunit[0] = Integer.parseInt(time_fin[0]);
          }
          if (flag[1] || flag[2] || flag[3] || flag[4] || flag[5]) {
              _tp.tunit[1] = Integer.parseInt(time_fin[1]);
          }
          if (flag[2] || flag[3] || flag[4] || flag[5]) {
              _tp.tunit[2] = Integer.parseInt(time_fin[2]);
          }
          if (flag[3] || flag[4] || flag[5]) {
              _tp.tunit[3] = Integer.parseInt(time_fin[3]);
          }
          if (flag[4] || flag[5]) {
              _tp.tunit[4] = Integer.parseInt(time_fin[4]);
          }
          if (flag[5]) {
              _tp.tunit[5] = Integer.parseInt(time_fin[5]);
          }
      }