2013-09-07 2 views
3

Я хочу найти разницу в дате в месяц и дни между двумя датами. Одна из них - текущая дата моей системы, а другая - в будущем.найти разницу дней и дней с двух дней

и будущая дата в следующем формате:

2014-02-06 21:26

Я использовал ниже код, чтобы найти разницу.

1.

currentCal = Calendar.getInstance(); 
weddingCal = Calendar.getInstance(); 
weddingCal.clear(); 
DateFormat formatterResponseDate = new SimpleDateFormat("yyyy-MM-dd HH:mm"); 
formatterResponseDate.setTimeZone(TimeZone.getTimeZone("GMT")); 
weddingCal.setTime(formatterResponseDate.parse(responseThis.trim())); 
long dateDiff = weddingCal.getTimeInMillis() - 
currentCal.getTimeInMillis(); 
long months = dateDiff/(30 * 24 * 60 * 60 * 1000); 
long days = (dateDiff % (30 * 24 * 60 * 60 * 1000))/(24 * 60 * 60 * 1000); 

Но это дает мне неправильный результат, и я думаю, что это не очень удобно, потому что иногда есть 31 дней в месяц. Я также использовал JODA - Time, чтобы найти разницу, но это также не помогает мне.

2.

currentCal = Calendar.getInstance(); 
startDate = new DateTime(currentCal.get(Calendar.YEAR), 
(currentCal.get(Calendar.MONTH)+1), 
currentCal.get(Calendar.DAY_OF_MONTH), currentCal.get(Calendar.HOUR), 
currentCal.get(Calendar.MINUTE)); 
weddingCal = Calendar.getInstance(); 
weddingCal.clear(); 
weddingCal.setTime(formatterResponseDate.parse(responseThis.trim())); 
endDate = new DateTime(weddingCal.get(Calendar.YEAR), (weddingCal.get(Calendar.MONTH)+1), 
weddingCal.get(Calendar.DAY_OF_MONTH), weddingCal.get(Calendar.HOUR), 
weddingCal.get(Calendar.MINUTE)); 
Period period = new Period(startDate, endDate); 
tvMonth.setText(String.valueOf(period.getMonths())); 
tvDays.setText(String.valueOf(period.getDays())); 

Оба не работают, пожалуйста, помогите мне, как я могу его найти? Thanks

ответ

4

Я использовал приведенный ниже код, и он отлично работает.

currentCal = Calendar.getInstance(); 
startDate = new DateTime(currentCal.get(Calendar.YEAR), 
         (currentCal.get(Calendar.MONTH)+1), 
         currentCal.get(Calendar.DAY_OF_MONTH), 
         currentCal.get(Calendar.HOUR), 
         currentCal.get(Calendar.MINUTE)); 
weddingCal = Calendar.getInstance(); 
weddingCal.clear(); 
weddingCal.setTime(formatterResponseDate.parse(responseThis.trim())); 
endDate = new DateTime(weddingCal.get(Calendar.YEAR), 
         (weddingCal.get(Calendar.MONTH)+1), 
         weddingCal.get(Calendar.DAY_OF_MONTH), 
         weddingCal.get(Calendar.HOUR), 
         weddingCal.get(Calendar.MINUTE)); 
Period period = new Period(startDate, endDate, PeriodType.yearMonthDayTime()); 
tvMonth.setText(String.valueOf(period.getMonths())); 
tvDays.setText(String.valueOf(period.getDays())); 
+1

Что такое период между прочим? – NarendraJi

+1

Период = org.joda.time.Period это из библиотеки Joda @ AllTimeKing-Narendra –

Смежные вопросы