关于java.util.Calendar类

来源:互联网 发布:ug8.0数控编程视频教程 编辑:程序博客网 时间:2024/04/30 23:32

java中描述时间的类常用的也就是java.util.Date类和java.util.Calendar类,但是在jdk1.1时,Date类中的很多API都已经过时,官方推荐使用Calendar类来描述时间。
由于有这样的需求:“判断一个时间点是不是在某个时间段内”,所以才仔细看了下Calendar的API的用法。

// 判断是不是在某个时间点前public boolean before(Object when);// 判断是不是在某个时间点后public boolean after(Object when);

看了下官方给出的关于before方法的实现,也蛮简单的:

public boolean before(Object when) {    return when instanceof Calendar        && compareTo((Calendar)when) < 0;}

既然这样的话,我们就可以据此写一个方法,来判断一个时间点是不是在某一个时间段内。

import java.util.Calendar;public final class TimeUtils {    public static boolean between(Calendar now, Calendar start, Calendar end) {        return now != null && start != null && end != null && now.after(start) && now.before(end);    }}

然后就可以这样用:

// c is an instance of CalendarCalendar start = (Calendar) c.clone();Calendar end = (Calendar) c.clone();start.set(Calendar.HOUR_OF_DAY, 8);start.set(Calendar.MINUTE, 30);end.set(Calendar.HOUR_OF_DAY, 10);end.set(Calendar.MINUTE, 5);if (TimeUtils.between(c, start, end)) {    // do what you want}
0 0