java.sql.Date以月为单位的差异

时间:2012-10-19 19:21:21

标签: java

我有两个java.sql.Date对象,我需要计算两者之间的月数。这应考虑到月份的百分比。例如,10/1/2012至11/15/2012应该返回1.5个月。有可用的库可以帮我吗?有什么建议吗?

2 个答案:

答案 0 :(得分:2)

这类似于计算两个日期之间的天数的另一个问题。使用天数,您可以除以每月的平均天数来表示已经过了多少个月。像Joda Time这样的东西可以提供这些信息。

回复:http://joda-time.sourceforge.net/ 回复:Difference in days between two dates in Java?

答案 1 :(得分:1)

我会转换为java.util.Date,然后进行计算

像这样:

private final static double AVERAGE_MILLIS_PER_MONTH = 365.24 * 24 * 60 * 60 * 1000 / 12;

public static double monthsBetween(Date d1, Date d2) {
    return (d2.getTime() - d1.getTime()) / AVERAGE_MILLIS_PER_MONTH; 
}