我在我的Android应用程序中使用Calendar Class来计算日期的某一天,然后与当前的一天进行一些比较。这是我使用的代码:
Date now=new Date();
Calendar ca1 = Calendar.getInstance();
ca1.set(now.getYear(), now.getMonth(), now.getDate());
int nowC=ca1.get(Calendar.DAY_OF_YEAR);
//Date arg0=say,get from user
Calendar ca2 = Calendar.getInstance();
ca2.set(arg0.GetBirthDay().getYear(),arg0.GetBirthDay().getMonth(),arg0.GetBirthDay().getDate());
int d1C=ca2.get(Calendar.DAY_OF_YEAR);
我调试我的应用程序,我看到当天的以下值: 周五3月2日14:18:33亚洲/德黑兰2012
和arg0: Fri Mar 02 00:00:00 Asia / Tehran 1979
'nowC'得到62,'d1C'得到61.
我希望它们是平等的,因为它们都有相同的月份和日期,如果我使用DateTime类的joda包,如下所示,我得到相同的结果:
int ndy=dtnow.getDayOfYear();
int d1dy=dt1.getDayOfYear();
为什么会这样?
答案 0 :(得分:2)
2012年是闰年,1979年不是。今年3月2日前还有一天 - 所以两个API都给你正确的答案!
我怀疑你想要比较月份和月份,以获得你期望的语义。