问题描述
我有两个名为calendar1
和calendar2
Calendar
变量,其中存储了一些Calendar值。
我想比较这些变量的MINUTE
值。
我找到了两种方法,但是我想知道有什么区别,哪种是正确的。
if(calendar1.MINUTE == calendar2.MINUTE)
和
if(calendar1.get(Calendar.MINUTE) == calendar2.get(Calendar.MINUTE))
非常感谢。
1楼
calendar1.MINUTE
表示您正在访问Calendar
类的static
常量之一。
这与Calendar.MINUTE
相同。
不应使用对象(例如calendar1.MINUTE)访问常量字段。
当您调用calendar1.get()
您需要传递要检索的日历字段,即MINUTE
, HOUR
, MILLISECOND
, YEAR
, MONTH
, DAY_OF_MONTH
关于这条线
if(calendar1.MINUTE == calendar2.MINUTE)
您只是比较两个常量,这将始终返回true
第二行是正确的
if(calendar1.get(Calendar.MINUTE) == calendar2.get(Calendar.MINUTE))
2楼
MINUTE
以整数形式返回分钟数:EG(13:04-> MINUTE为4)
get(int field)
->通过首先调用complete()
计算字段值之后,返回给定字段的值。
如果尚未设置时间,则complete()
->从字段中计算时间。
3楼
好的,这是您的问题的答案。
Calender.MINUTE:-它给出的分钟数不为零。 分钟数在1到9之间。
例如:我有时间在我的设备上12:09,但时间为12:9
cal.MINUTE:-这是一个静态最终Integer,用于Calendar方法调用。
从实例化对象中调用静态成员是一种不好的做法。
因此,最好的方法是通过cal.get(Calendar.MINUTE);
获得正确的值cal.get(Calendar.MINUTE);
。