2015-07-20 67 views
-2
private long calculateRemainingDays() { 


     final Calendar c = Calendar.getInstance(); 
     c.set(2015, 7, 23); 
     final Calendar today = Calendar.getInstance(); 

     final long millis = c.getTimeInMillis() 
       - today.getTimeInMillis(); 
     // Convert to days 
     final long days = millis/86400000; 
     return days; 
} 

我需要在我的android应用程序中添加一个函数。我想从当天剩余的几天到2015/9/30。当日期更改为第二天时,剩余日期将减少。我想这样说: 剩余7天... 6/5/4/etc ...请帮助我获得正确的剩余天数。对不起,我英文很差。谢谢!如何计算剩余天数?

回答

2

set()方法的参数中使用Calender.JULY而不是7

7 = August. 6 = July.

当它开始与January0。最好使用像Calender.JANUARY这样的静态实例变量。

但是当你要计算直到2015/9/30,你应该

c.set(2015, Calender.SEPTEMBER, 09); 

的代码的其余部分似乎确定设置的值。它会返回正确的天数。

+0

它的工作!谢谢! :-) –

0

,如果你不介意使用joda.time

你可以做这种形式的东西:

final Calendar c = Calendar.getInstance(); 
c.set(2015, Calender.SEPTEMBER, 30); 
Date endDate = c.getTime(); 
Instant startInstant = new Instant(new Date()); 
Instant endInstant = new Instant(endDate); 
Days days = Days.daysBetween(startInstant, endInstant); 
+0

如何使用joda.time? –

+0

'import org.joda.time.Days; import org.joda.time.Instant;' –

+0

如何制作endDate?我的结束日期是2015/9/30。 –

0

试试这个: -

final long millis = c.getTimeInMillis() 
       - today.getTimeInMillis(); 
    System.out.println ("Days: " + TimeUnit.DAYS.convert(millis , TimeUnit.MILLISECONDS));