Java Android,两个月之间的日差
我正在尝试编写代码,以找出两个日期之间的日差,当一个月有31天,但当一个月有30天时,结果减少了1天。这种情况是29天,28天,一个月减少了2,3天,我希望我能知道原因 守则:Java Android,两个月之间的日差,java,android,Java,Android,我正在尝试编写代码,以找出两个日期之间的日差,当一个月有31天,但当一个月有30天时,结果减少了1天。这种情况是29天,28天,一个月减少了2,3天,我希望我能知道原因 守则: public int dateAfterMod (Calendar endDate){ //TO GET THE CURRENT DATE GregorianCalendar currentDate = new GregorianCalendar (); cu
public int dateAfterMod (Calendar endDate){
//TO GET THE CURRENT DATE
GregorianCalendar currentDate = new GregorianCalendar ();
currentDate=(GregorianCalendar) endDate;
//THE CAL.ADD BECUSE THE 1ST MONTH IN THE YEAR IS 0 NOT 1
currentDate.add(Calendar.MONTH, 1);
//TO SET THE DATE TO THE FIRST DAY IN THE MOTH FOR COMPAISSON
currentDate.set(Calendar.DAY_OF_MONTH, 1);
//TO SET THE START DATE WICH IS 1/1/2013
GregorianCalendar startDate = new GregorianCalendar(2013, 1, 1);
//TO FIND THE DIFF BETWEEN THE START DATE AND CUREENT DATE
long diff=(((currentDate.getTimeInMillis()-
startDate.getTimeInMillis())/(1000*60*60*24)));
这样试试
public static void main(String[] args) {
String dateStart = "01/14/2012 09:29:58";
String dateStop = "01/15/2012 10:31:48";
SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
Date d1 = null;
Date d2 = null;
try {
d1 = format.parse(dateStart);
d2 = format.parse(dateStop);
DateTime dt1 = new DateTime(d1);
DateTime dt2 = new DateTime(d2);
System.out.print(Days.daysBetween(dt1, dt2).getDays() + " days, ");
System.out.print(Hours.hoursBetween(dt1, dt2).getHours() % 24 + " hours, ");
System.out.print(Minutes.minutesBetween(dt1, dt2).getMinutes() % 60 + " minutes, ");
System.out.print(Seconds.secondsBetween(dt1, dt2).getSeconds() % 60 + " seconds.");
} catch (Exception e) {
e.printStackTrace();
}
输出
检查这个:另一种方法是您可以为if…else if…else编写代码。通过这种方式,您可以通过添加特定的日差来处理31/30/29/28天的日差。除以1000*60*60*24将毫秒转换为天通常是一个非常糟糕的主意,因为当夏令时开始或结束时,您得到的一天是23或25小时。请参阅和。
1 days, 1 hours, 1 minutes, 50 seconds.