我遇到下面的代碼有問題。它將毫秒轉換爲幾個月,幾天,幾小時和幾分鐘。爲什麼這個時間單位換算歸零?
long diffms = date2l - date1l; //The result here is in milliseconds; The value of date2l - date1l are different
long diff_minute = diffms/60000;
long diff_hour = diff_minute/60; float diff_minute_now = (diff_minute % 1) * 60; int dmn = (int) diff_minute_now;
long diff_day = diff_hour/24; float diff_hour_now = (diff_hour % 1) * 24; int dhn = (int) diff_hour_now;
long diff_month = diff_day/30; float diff_day_now = (diff_day % 1) * 30; int ddn = (int) diff_day_now;
diffe = new LabelField
("Remaining Time : " + Long.toString(diff_month) + " month(s) "
+ Integer.toString(ddn) + " day(s) "
+ Integer.toString(dhn) + " hour(s) "
+ Integer.toString(dmn) + " minute(s)");
add(diffe);
爲什麼結果值全爲零?
編輯: @BicycleDude我修改代碼爲:
long diffms = date2l - date1l;
long ts = diffms/1000;
long mo = ts/60/60/24/30;
long d = (ts - mo * 30 * 24 * 60 * 60)/(60 * 60 * 24);
long h = (ts - d * 24 * 60 * 60)/(60 * 60);
long m = (ts - h * 60 * 60)/60;
但時間不工作
你在使用值'date2l'和'date1l'?如果'date2l == date1l',你會期望所有的值爲0. – Jeffrey
它是以毫秒爲單位的日曆格式的時間。他們是不同的。 –