【发布时间】:2012-03-17 19:49:08
【问题描述】:
我遇到了一个问题,即如何通过比较两个日期来获取已过去的天数。目前我尝试使用 compareTo() 但它只返回 1 或-1,我想获取已经过去的天数。谢谢
【问题讨论】:
我遇到了一个问题,即如何通过比较两个日期来获取已过去的天数。目前我尝试使用 compareTo() 但它只返回 1 或-1,我想获取已经过去的天数。谢谢
【问题讨论】:
这应该可以 它的java代码。 只需修改以使用 android
import java.util.*;
public class DateDifference {
public static void main(String args[]){
DateDifference difference = new DateDifference();
}
DateDifference() {
Calendar cal1 = new GregorianCalendar();
Calendar cal2 = new GregorianCalendar();
cal1.set(2008, 8, 1);
cal2.set(2008, 9, 31);
System.out.println("Days= "+daysBetween(cal1.getTime(),cal2.getTime()));
}
public int daysBetween(Date d1, Date d2){
return (int)( (d2.getTime() - d1.getTime()) / (1000 * 60 * 60 * 24));
}
}
【讨论】:
compareTo() 方法(如果您使用 Data/DateTime() 作为示例)只会为您提供:
返回一个整数,指示此实例是否早于, 与指定的日期/日期时间值相同或晚于指定的日期/日期时间值。 (MSDN)
这就是为什么你只能得到 -1 和 1 之间的数字而不是天数(你可以在 MSDN 上查看
为了做你想做的事,请查看这篇文章:Number of days between 2 dates
【讨论】:
希望对你有帮助
import java.util.*; import java.util.Calendar;
public class DeltaDays { public static void main(String[] args) {
// Creates two calendars instances
Calendar calendar1 = Calendar.getInstance(); Calendar calendar2 = Calendar.getInstance();
// Set the date for both of the calendar instance
calendar1.set(2007, 12, 30); calendar2.set(2008, 05, 03);
// Get the represented date in milliseconds
long milis1 = calendar1.getTimeInMillis(); long milis2 = calendar2.getTimeInMillis();
// Calculate difference in milliseconds
long day = milis2 - milis1;
// Calculate difference in seconds
long diffSeconds = day / 1000;
// Calculate difference in minutes
long diffMinutes = day / (60 * 1000);
// Calculate difference in hours
long diffHours = day / (60 * 60 * 1000);
// Calculate difference in days
long diffDays = day / (24 * 60 * 60 * 1000);
System.out.println("In milliseconds: " + day + " milliseconds.");
System.out.println("In seconds: " + diffSeconds + " seconds.");
System.out.println("In minutes: " + diffMinutes + " minutes.");
System.out.println("In hours: " + diffHours + " hours.");
System.out.println("In days: " + diffDays + " days."); } }
【讨论】:
试试这个,在你的 android 项目上使用 dateDifference() 方法:
import java.util.Calendar;
import java.util.Date;
public class Sample {
public static void main(String arg[])
{
dateDifference();
}
public static void dateDifference()
{
Date currentdate = new Date();
Calendar calUpdated = Calendar.getInstance();
calUpdated.set(2012, 01, 01);
long currentDateMilliSec = currentdate.getTime();
long updateDateMilliSec = calUpdated.getTimeInMillis();
long diffDays = (currentDateMilliSec - updateDateMilliSec) / (24 * 60 * 60 * 1000);
System.out.println("Time in days: " + diffDays + " days.");
}
}
【讨论】: