java - Android 还剩多少天

标签 java android time

我需要从一个日期到第二个日期执行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);
}

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

最佳答案

使用 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))) );
}

输出:剩余天数:17

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

        day.add(Calendar.YEAR, 1);

关于java - Android 还剩多少天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14155928/

相关文章:

java - 为什么规则鱿鱼:CycleBetweenPackages been removed from the Java "Sonar way with Findbugs" quality profile?

java - 如何计算-5的负(~)

android - API 14 使用 finishAffinity() 的兼容方法是什么?

java - 带有外部库的 Robolectric NoClassDefFoundError

android - 通知 ListView 布局动态变化

python - 如何使用 Raspberry Pi 获得更精确的时间测量?

java - 如何将警告视为特定 Java 文件中的错误?

java - 将字符串数组解析为 ArrayList<Integer> 时丢失前导零

python - 将时区缩写解析为 UTC

php - 从时间戳计算