2017-06-13 28 views
1

从两个日期计时差我已经尝试过的compareTo两个日期在Android Studio中一样在我的代码这个如何的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) { 

      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

如何?

+0

请检查我更新的解决方案,让我知道在关注 –

回答

1

您也可以从您的日期创建timeStamp并比较timeStamp。
为了创建日期到下面的时间戳的例子

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 
    } 

用于获取日期之间的差别,比u需要使用这个下面的代码: -

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); 

,并在最后一天差U可以算作如下

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"); 

} 
+0

如何做的情况下,如果我想要做的时间差2个或更多? –

+0

我会做出三个条件,如果不同的日期== 0,如果不同的日期== 1,如果不同的日期> 1 –

+0

@MegiFernanda你试过上面的代码? ..在我的上面的代码“天”将显示日期的差异...根据日期的差异可以是任何东西...你可以很容易地使用我的代码管理.. –

0

您可以使用下面的方法来获得日差。

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); 

它会给确切日期不同。

+0

谢谢你的回答sir –

0

这里是代码:

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); 
+0

谢谢你的回答sir –

0
//Given you are using a valid parser 

    long logTheDifferenceOfDays(Date d1, Date d2) { 
       long diff = d2.getTime() - d1.getTime(); 
       if (diff ==0) { 
        Log.d("if different date is 0"); 
       } else if(diff==86400*1000||diff==-86400*1000){ 
        Log.d("if different date is 1"); 
       } else { 
        Log.d("if different date more than one"); 
       } 

      } 
相关问题