我如何计算两个日期之间的差异(确认一些逻辑)?
How can I calculate the difference between two dates(confirming some logic)?
在我正在观看的教程中,我试图计算两个日期之间的差异。我需要 initMonth 和 finishMonth,其想法是从 finishMonth 中减去 initMonth 并计算差值。
我可以使用日历 class(然后使用 finishMonth 做类似的事情):
int initMonth = calendar.get(Calendar.MONTH);
...但问题是,如果 initMonth 是 May(例如)并且 endMonth 是 January;当我从 initMonth 中减去 endMonth 时,我将得到 1-5=-4-- 我将得到一个负差。为了解决这个问题,老师给出了乘以YEAR * 12然后加上月份的解决方案,如下所示:
int initMonth = calendar.get(Calendar.YEAR) *12 + calendar.get(Calendar.MONTH);
但是,这对我来说没有任何意义,因为这一年将 return 类似于 2021 * 12 + 月到某个非常大的数字。我的猜测是他的意思是 MONTH 所以我们将得到一年中的月份加上月份。我是对的吗?我不确定,想确认一下这个逻辑。
提前致谢。
您的教程已经过时好几年了。切勿使用 Calendar
或 Date
class。仅使用 java.time classes.
显然您想计算经过的月份。
LocalDate then = LocalDate.of( 2020 , Month.MARCH ) ;
LocalDate today = LocalDate.now() ;
Period elapsed = Period.between ( then , today ) ;
int months = elapsed.toMonths() ;
搜索 Stack Overflow 以了解更多信息。这已经讲过很多次了。
在我正在观看的教程中,我试图计算两个日期之间的差异。我需要 initMonth 和 finishMonth,其想法是从 finishMonth 中减去 initMonth 并计算差值。
我可以使用日历 class(然后使用 finishMonth 做类似的事情):
int initMonth = calendar.get(Calendar.MONTH);
...但问题是,如果 initMonth 是 May(例如)并且 endMonth 是 January;当我从 initMonth 中减去 endMonth 时,我将得到 1-5=-4-- 我将得到一个负差。为了解决这个问题,老师给出了乘以YEAR * 12然后加上月份的解决方案,如下所示:
int initMonth = calendar.get(Calendar.YEAR) *12 + calendar.get(Calendar.MONTH);
但是,这对我来说没有任何意义,因为这一年将 return 类似于 2021 * 12 + 月到某个非常大的数字。我的猜测是他的意思是 MONTH 所以我们将得到一年中的月份加上月份。我是对的吗?我不确定,想确认一下这个逻辑。
提前致谢。
您的教程已经过时好几年了。切勿使用 Calendar
或 Date
class。仅使用 java.time classes.
显然您想计算经过的月份。
LocalDate then = LocalDate.of( 2020 , Month.MARCH ) ;
LocalDate today = LocalDate.now() ;
Period elapsed = Period.between ( then , today ) ;
int months = elapsed.toMonths() ;
搜索 Stack Overflow 以了解更多信息。这已经讲过很多次了。