Reputation: 1169
So, I am trying to computer the difference between two dates in time, and out puting that difference in days, hours, and minutes. I've been running this sample code just as a java console application and it works fine, however, when I try to do the same thing in Android, I get garbage data. Is Joda Time too complex for Android? Should I try out Date4j as an alternative?
import java.util.; import org.joda.;
import org.joda.time.DateTime;
public class time {
//(5000);
final static long MILLIS_IN_DAY = 86400000;
final static long MILLIS_IN_HOUR = 3600000;
final static long MILLIS_IN_MINUTE = 60000;
public static void main(String[] args){
long day, hour, minute;
//MAKE SURE TO CHECK IF USER SET(LATER)
// DateTime(2013,9,12,0,0)
DateTime d1 = new DateTime(2013,9,17,0,0);
DateTime d2 = new DateTime(2013,9,12,21,30);
//long date = d2.getMillis();
DateTime d3 = new DateTime();
long diffInMillis = d3.getMillis() - d1.getMillis();
minute = (diffInMillis/MILLIS_IN_MINUTE)%60;
hour = (diffInMillis/MILLIS_IN_HOUR)%24;
day = (diffInMillis/MILLIS_IN_DAY);
System.out.println(Long.toString(d1.getMillis()));
System.out.println(Long.toString(d2.getMillis()));
System.out.println(Long.toString(d3.getMillis()));
System.out.println(Long.toString(diffInMillis));
System.out.println("Minutes:");
System.out.println(Long.toString(minute));
System.out.println("Hours:");
System.out.println(Long.toString(hour));
System.out.println("Days:");
System.out.println(Long.toString(day));
}
}
Upvotes: 0
Views: 416
Reputation: 29703
Don't calculate this values manually. Calculate with Joda-Time methods. There is no reason to use Joda
and don't use Joda
's methods
E.g.
with Days, Hours, Mintes
System.out.println("Minutes:");
System.out.println(Minutes.minutesBetween(d2, d1).getMinutes() % 60);
System.out.println("Hours:");
System.out.println(Hours.hoursBetween(d2, d1).getHours() % 24);
System.out.println("Days:");
System.out.println(Days.daysBetween(d2, d1).getDays());
or with Period
Period period = new Period(d2, d1);
System.out.println("Minutes:");
System.out.println(period.getMinutes());
System.out.println("Hours:");
System.out.println(period.getHours());
System.out.println("Days:");
System.out.println(period.getDays());
Upvotes: 3