问题描述
 
     我有两个名为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); 
     。