我的java学习-时间段的判断

最近碰到一个比较难解决的问题,时间段的判断。原问题是:停车场计费,字段 inTime(DATE)入场时间,outTime(DATE)出场时间。需要判断入场时间和出场时间是否在一个时间段内,如果在的话,直接进行收费,如果不在同一个时间段,分别收费然后价格相加。
判断入场时间和出场时间是不是在同一个时间段,是这个问题的重点和难点。
java里面Date类型的数据,在应用上是一个长整型数,直接用这个Date型数据来进行判断应该是不行的。需要用到其他类型数据进行转换。网上各种资料查询,java里提供了有Calendar类来提供有关日期日历的计算。有了具体的小时和分钟数据,就可以针对问题的判断时间来编程了。

class MyTime{
	private int hour;
	private int minute;
	public MyTime(Date date){
		Calendar c =  Calendar.getInstance();
		c.setTime(date);  		//用setTime方法来得到Date类对象对应的Calendar数据
		hour = c.get(Calendar.HOUR_OF_DAY);  //用Calendar类的get方法来得到具体的小时数
		minute = c.get(Calendar.MINUTE);  //get里面参数的不同,得到的数据也不同
	}
}

Calendar类的用法,不是new一个对象,而是Calendar c = Calendar.getInstance();这样的用法,这是因为,Calendar是一个抽象类,从下面的定义里可以看到。

public abstract class Calendar
extends Object
implements Serializable, Cloneable, Comparable<Calendar>

Calendar里面提供了得到一个Calendar类对象的方法,就是getInstance(),这个方法的返回值就是一个Calendar对象。

static Calendar	getInstance()
Gets a calendar using the default time zone and locale.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值