我如何计算两个日期之间的差异(确认一些逻辑)



在我正在观看的一个教程中,我试图计算两个日期之间的差异。我需要initMonth和finishMonth,其想法是从finishMonths中减去initMonth并计算差值。

我可以使用Calendar类(然后使用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);

然而,这对我来说没有任何意义,因为今年将有一个非常大的数字,比如2021年*12个多月。我的猜测是他指的是月,所以我们会得到一年中的月加上这个月。我说得对吗?我不确定,想确认一下这个逻辑。

提前谢谢。

您的教程已经过时好几年了。切勿使用CalendarDate类。仅使用java.time类。

显然,你想计算经过的月份。

LocalDate then = LocalDate.of( 2020 , Month.MARCH ) ;
LocalDate today = LocalDate.now() ;
Period elapsed = Period.between ( then , today ) ;
int months = elapsed.toMonths() ;

搜索堆栈溢出以了解更多信息。这已经被报道了很多次了。

相关内容

  • 没有找到相关文章

最新更新