楼主参考一下:
import java.util.Calendar;
import java.util.Date;public class TimeInterval {
static final int BEGINHOUR = 3;//小时的起始时间
static final int ENDHOUR = 19;//结束时间

public static void main(String[] args) {
Date nowDate = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(nowDate);
int nowHour = cal.get(Calendar.HOUR_OF_DAY);//得到当前时间的24小时表示的小时数。

int beginInterval = nowHour - BEGINHOUR;
int endInterval = ENDHOUR- nowHour;

System.out.println("beginInterval is " + beginInterval);
System.out.println("endInterval is " + endInterval);

}
}

解决方案 »

  1.   

    转为milliseconds想减来比较,换算public static void main(String args[]) {
        Calendar startTime = Calendar.getInstance();
        startTime.set(1971, 0, 1, 03, 00, 00);

        Calendar endTime = Calendar.getInstance();
        endTime.set(1971, 0, 1, 19, 00, 00);

        Date now = new Date();

        // 通过milliseconds 想减来比较,再将时间差换算为小时
        double disStartTime = (double)(now.getTime() - startTime.getTimeInMillis())/(1000*60*60);
        double disEndTime = (double)(now.getTime() - endTime.getTimeInMillis())/(1000*60*60);

        System.out.println("disStartTime " + disStartTime);
        System.out.println("disEndTime " + disEndTime);
    }
      

  2.   

    前面几位说的楼主参考吧,这里说下Calendar这个类有很多实用的方法可以灵活获取任何时间点的,
    跟Date转换也很方便,楼主重点看看。
      

  3.   

    给你推荐一个time的小框架,joda-time,很容易解决时间上几乎所有的问题,包括你这个~去学学吧