如何在android studio中比较或计算两个日期的差异
我已经试过在android studio中比较两次约会,就像这样如何在android studio中比较或计算两个日期的差异,android,date,compareto,Android,Date,Compareto,我已经试过在android studio中比较两次约会,就像这样 String dtThen = "13-10-2013"; Date dateThen = formatter.parse(dtThen); String dtNow = "15-10-2013"; Date dateNow = formatter.parse(dtNow); if (dateThen.compareTo(dateNow)==0)
String dtThen = "13-10-2013";
Date dateThen = formatter.parse(dtThen);
String dtNow = "15-10-2013";
Date dateNow = formatter.parse(dtNow);
if (dateThen.compareTo(dateNow)==0) {
Log.d("if different date is 0");
} else if (dateThen.compareTo(dateNow)==1) {
Log.d("if different date is 1");
} else if (dateThen.compareTo(dateNow)>1) {
Log.d("if different date is 2");
}
在我的代码中有三个条件,我想使条件比较日期为0、1且大于1
如果compareTo为0,则是可行的,但如何使compareTo与1相同且大于1
如何创建时间戳?您还可以根据日期创建时间戳并比较该时间戳。
下面是将日期创建为时间戳的示例
String dtThen ="13-10-2013";
String dtNow = "15-10-2013";
DateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
Date dateThen = (Date)formatter.parse(dtThen );
Date dateNow = (Date)formatter.parse(dtNow );
现在你可以像下面一样比较时间戳了
if(dateThen.getTime()>dateNow.getTime())
{
// Do some thing here
}
else
{
//Do other stuff here
}
要获取日期之间的差异,您需要使用以下代码:-
long diff = dateThen.getTime() - dateNow.getTime();
long seconds = diff / 1000;
long minutes = seconds / 60;
long hours = minutes / 60;
long days = hours / 24;
System.out.println("YOUR DAY HOUR AND MINUTE DIFFERENCE==>>> "+ days +" "+hours +" "+minutes +" "+seconds);
在最后一天的差异可以计算如下
if (days ==0) {
Log.d("if different date is 0");
} else if (days ==1) {
Log.d("if different date is 1");
} else if (days >1) {
Log.d("if different date is 2");
}
您可以使用以下方法获得日差
public static int getDateDifference(String dtThen, String dtNow, String format) {
// Converting String to Date
Date dateThen = convertStingToDate(dtThen, format);
Date dateNow = convertStingToDate(dtNow, format);
// converting Date to Calendar object
Calendar now = Calendar.getInstance();
now.setTime(dateNow);
Calendar theDay = Calendar.getInstance();
theDay.setTime(dateThen);
// Getting the difference in milliseconds
long diffMillis = now.getTimeInMillis() - theDay.getTimeInMillis();
// Converting milliseconds into number of days
int daysDiff = (int) (diffMillis / (1000 * 60 * 60 * 24));
return daysDiff;
}
public static Date convertStingToDate(String inputDate, String format) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format, Locale.getDefault());
Date date = null;
try {
date = simpleDateFormat.parse(inputDate);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
您可以从代码中这样调用上述方法
String dtThen = "13-10-2012";
String dtNow = "15-10-2013";
String format = "dd-MM-yyyy";
int daysDiff = getDateDifference(dtThen, dtNow, format);
Log.d(TAG, "Day difference: " + daysDiff);
它将给出精确的日差。以下是代码:
public static int getDateDifference(String dtThen, String dtNow, String format) {
// Converting String to Date
Date dateThen = convertStingToDate(dtThen, format);
Date dateNow = convertStingToDate(dtNow, format);
// converting Date to Calendar object
Calendar now = Calendar.getInstance();
now.setTime(dateNow);
Calendar theDay = Calendar.getInstance();
theDay.setTime(dateThen);
// Getting the difference in milliseconds
long diffMillis = now.getTimeInMillis() - theDay.getTimeInMillis();
// Converting milliseconds into number of days
int daysDiff = (int) (diffMillis / (1000 * 60 * 60 * 24));
return daysDiff;
}
public static Date convertStingToDate(String inputDate, String format) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format, Locale.getDefault());
Date date = null;
try {
date = simpleDateFormat.parse(inputDate);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
Date d2 = null;
Date d1 = null;
Calendar cal = Calendar.getInstance();
try {
d2 = formatter.parse(formatter.format(c.getTime()));
d1 = formatter.parse(preferance.getDate());//Returns 15/10/2012
} catch (java.text.ParseException e) {
e.printStackTrace();
}
int diffInDays = (int) ((d1.getTime() - d2.getTime()) / (1000 * 60 * 60 * 24));
//Toast.makeText(getActivity(), "diff"+diffInDays, Toast.LENGTH_SHORT).show();
Log.d(TAG, "initWheel3: " + diffInDays);
System.out.println(diffInDays);
如果我想使日期差为2或更多,如何确定?我将设置三个条件,如果不同的日期==0,如果不同的日期==1,如果不同的日期>1@MegiFernanda你试过上面的代码吗。。在我上面的代码中,“天”将显示日期的差异…差异可以是根据日期的任何事情…您可以使用我的代码轻松管理…请检查我的更新解决方案,并在出现问题时通知我