请教一个算法问题

计算一下当前时间到周三中午12点还有多少时长?
哪位帮忙给写个伪代码,

[code="java"]
package com.kuke.update.timmer;

import java.util.Calendar;
import java.util.Date;
import java.util.TimerTask;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

/**

  • 定时任务
  • 用于定时提交索引、定时刷新搜索词缓存
    */
    public class ScheduledExceutor extends TimerTask {

    private String jobName = "";

    private static ScheduledExecutorService service = Executors.newScheduledThreadPool(2);

    public ScheduledExceutor(String jobName) {
    super();
    this.jobName = jobName;
    }

    @Override
    public void run() {

    }

    /**

    • 计算从当前时间currentDate开始,满足条件dayOfWeek, hourOfDay, minuteOfHour,
    • secondOfMinite的最近时间
      */
      public Calendar getEarliestDate(Calendar currentDate, int dayOfWeek, int hourOfDay, int minuteOfHour, int secondOfMinite) {
      // 计算当前时间的WEEK_OF_YEAR,DAY_OF_WEEK, HOUR_OF_DAY, MINUTE,SECOND等各个字段值
      int currentWeekOfYear = currentDate.get(Calendar.WEEK_OF_YEAR);
      int currentDayOfWeek = currentDate.get(Calendar.DAY_OF_WEEK);
      int currentHour = currentDate.get(Calendar.HOUR_OF_DAY);
      int currentMinute = currentDate.get(Calendar.MINUTE);
      int currentSecond = currentDate.get(Calendar.SECOND);

      // 如果输入条件中的dayOfWeek小于当前日期的dayOfWeek,则WEEK_OF_YEAR需要推迟一周
      boolean weekLater = false;
      if (dayOfWeek < currentDayOfWeek) {
      weekLater = true;
      } else if (dayOfWeek == currentDayOfWeek) {
      // 当输入条件与当前日期的dayOfWeek相等时,如果输入条件中的
      // hourOfDay小于当前日期的
      // currentHour,则WEEK_OF_YEAR需要推迟一周
      if (hourOfDay < currentHour) {
      weekLater = true;
      } else if (hourOfDay == currentHour) {
      // 当输入条件与当前日期的dayOfWeek, hourOfDay相等时,
      // 如果输入条件中的minuteOfHour小于当前日期的
      // currentMinute,则WEEK_OF_YEAR需要推迟一周
      if (minuteOfHour < currentMinute) {
      weekLater = true;
      } else if (minuteOfHour == currentSecond) {
      // 当输入条件与当前日期的dayOfWeek, hourOfDay,
      // minuteOfHour相等时,如果输入条件中的
      // secondOfMinite小于当前日期的currentSecond,
      // 则WEEK_OF_YEAR需要推迟一周
      if (secondOfMinite < currentSecond) {
      weekLater = true;
      }
      }
      }
      }
      if (weekLater) {
      // 设置当前日期中的WEEK_OF_YEAR为当前周推迟一周
      currentDate.set(Calendar.WEEK_OF_YEAR, currentWeekOfYear + 1);
      }
      // 设置当前日期中的DAY_OF_WEEK,HOUR_OF_DAY,MINUTE,SECOND为输入条件中的值。
      currentDate.set(Calendar.DAY_OF_WEEK, dayOfWeek);
      currentDate.set(Calendar.HOUR_OF_DAY, hourOfDay);
      currentDate.set(Calendar.MINUTE, minuteOfHour);
      currentDate.set(Calendar.SECOND, secondOfMinite);
      return currentDate;

    }

    public static void main(String[] args) {
    //每周3 、12点、0分、0秒执行 (sunday:1 作为一周第一天)
    int dayOfWeek_upindex = 4;
    int hourOfDay_upindex = 12;
    int minuteOfHour_upindex = 0;
    int secondOfMinite_upindex = 0;
    ScheduledExceutor job = new ScheduledExceutor("");
    Calendar currentDate = Calendar.getInstance();
    long currentDateLong = currentDate.getTime().getTime();
    Calendar earliestDate = job.getEarliestDate(currentDate, dayOfWeek_upindex, hourOfDay_upindex, minuteOfHour_upindex,
    secondOfMinite_upindex);
    long earliestDateLong = earliestDate.getTime().getTime();
    // 计算从当前时间到最近一次执行时间的时间间隔
    long delay = earliestDateLong - currentDateLong;
    System.out.println(delay);

// long period = 7 * 24 * 60 * 60 * 1000;
// service.scheduleAtFixedRate(job, delay, period, TimeUnit.MILLISECONDS);

}

}
[/code]