【发布时间】:2012-09-26 23:46:09
【问题描述】:
有没有办法将通过计算两个日期之间的差异来计算的天数组织到不同的部分,例如对于 364 天,它将是:0 年、11 个月、30 天、小时、分钟等。 我认为使用逻辑运算符可能像 % 和 / 一样工作,但由于不同的月份有不同的天数,有些年份是闰年,我不知道该怎么做。任何帮助将非常感激。我的代码:
import java.util.*;
public class CleanDate {
public static void main(String[] args) {
Calendar cDate = GregorianCalendar.getInstance();
cDate.set(2011, 0, 31, 00, 00, 00);
Date date1 = cDate.getTime();
Date date2 = new Date();
Calendar calendar1 = Calendar.getInstance();
Calendar calendar2 = Calendar.getInstance();
calendar1.setTime(date1);
calendar2.setTime(date2);
long milliseconds1 = calendar1.getTimeInMillis();
long milliseconds2 = calendar2.getTimeInMillis();
long diff = milliseconds2 - milliseconds1;
long diffSeconds = diff / 1000;
long diffMinutes = diff / (60 * 1000);
long diffHours = diff / (60 * 60 * 1000);
long diffDays = diff / (24 * 60 * 60 * 1000);
System.out.println("Time in minutes: " + diffMinutes + " minutes.");
System.out.println("Time in hours: " + diffHours + " hours.");
System.out.println("Time in days: " + diffDays + " days.");
}
}
【问题讨论】:
-
学习和使用JODA时间。这不是一个好主意。
-
一个时间段有多长,比如说,“两个月,十一天”?
-
我希望用户定义时间段,因此用户输入日期并输出自该日期以来的年、月、日。我会调查乔达时间。感谢您的帮助
-
顺便说一下,不要在文字数字上使用前导零,因为它在 Java 中读作 octal number。
标签: java date calendar gregorian-calendar