2016-10-19 200 views
-2

我从日历中得到两个日期。它写入一个字符串builder.I想要获得两个日期之间的差异,我还想保持时间之间的剩余天数,除了周末。两个日期之间的Android差异?

private DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener() { 

     // when dialog box is closed, below method will be called. 
     public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int selectedDay) { 


      year = selectedYear; 
      month = selectedMonth; 
      day = selectedDay; 

      if (cur == DATE_DIALOG_ID) { 
       // set selected date into textview 
       permitDate = new StringBuilder().append(day).append(".").append(month + 1).append(".").append(year).append(" ").toString(); 
       tvDisplayDate.setText("Date : " + permitDate); 

      } else { 
       startDate = new StringBuilder().append(day).append(".").append(month + 1) .append(".").append(year).append(" ").toString(); 
       tvDisplayDate2.setText("Date : " + startDate); 


      } 

     } 
    }; 
+1

这样认为你应该使用java的日历API – Jens

+0

我可以不使用API​​日历吗? –

+0

不要试图重新发明轮子。建立在现有解决方案上像AndroidThreeTenBp或Joda时间。你会减少你将你的头撞在墙上的次数。 –

回答

0
Calendar thatDay = Calendar.getInstance(); 
thatDay.set(Calendar.DAY_OF_MONTH,25); 
thatDay.set(Calendar.MONTH,7); // 0-11 so 1 less 
thatDay.set(Calendar.YEAR, 1985); 

Calendar today = Calendar.getInstance(); 

long diff = today.getTimeInMillis() - thatDay.getTimeInMillis(); //result in millis 

long days = diff/(24 * 60 * 60 * 1000); 

从字符串解析日期,你可以使用

String strThatDay = "1985/08/25"; 
SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd"); 
Date d = null; 
try { 
d = formatter.parse(strThatDay);//catch exception 
} catch (ParseException e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 
} 


Calendar thatDay = Calendar.getInstance(); 
thatDay.setTime(d); //rest is the same.... 
0

使用JodaTime库中查找日期之间的差值。 欲了解更多信息,请按照说明Use Joda Time