Android天还剩下

Rad*_*Dev 7 java time android

我需要CountDown Days从一个日期到第二个日期

例如

CURRENT_DATE:3/1/2013 NEXT_DATE:21/01/2013

然后它显示::17 DAYS LEFT

我实现了这样的代码

String inputDateString = "01/22/2013";
Calendar calCurr = Calendar.getInstance();
Calendar calNext = Calendar.getInstance();
calNext.setTime(new Date(inputDateString)); 

if(calNext.after(calCurr)) 
{
    long timeDiff = calNext.getTimeInMillis() - calCurr.getTimeInMillis();
    int daysLeft = (int) (timeDiff/DateUtils.DAY_IN_MILLIS);
    dni.setText("Days Left: "+daysLeft);
}
else
{
    long timeDiff = calCurr.getTimeInMillis() - calNext.getTimeInMillis();
    timeDiff = DateUtils.YEAR_IN_MILLIS - timeDiff;
    int daysLeft = (int) (timeDiff/DateUtils.DAY_IN_MILLIS);
}
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来实现这些?

Per*_*ror 5

使用Calendar的方法:

String inputDateString = "01/22/2013";
Calendar calCurr = Calendar.getInstance();
Calendar day = Calendar.getInstance();
day.setTime(new SimpleDateFormat("MM/dd/yyyy").parse(inputDateString));
if(day.after(calCurr)){
               System.out.println("Days Left: " + (day.get(Calendar.DAY_OF_MONTH) -(calCurr.get(Calendar.DAY_OF_MONTH))) );
}
Run Code Online (Sandbox Code Playgroud)

输出:剩余天数:17

并将年份增加 1 ,您可以使用 Calendar.add() 方法

        day.add(Calendar.YEAR, 1);
Run Code Online (Sandbox Code Playgroud)