gpt4 book ai didi

java - 两个 Java 日期之间的正确周期

转载 作者:行者123 更新时间:2023-12-01 18:55:59 25 4
gpt4 key购买 nike

我需要帮助来获取两个 Java 日期之间的周期。我使用 JodaTime 进行计算,但结果不正确。

开始时间:2012年11月11日 12:00
结束:2012年12月16日 20:15
(德国时间标准)
结果必须为 5 周 0 天 8 小时 15 分钟。

我尝试一下

Period period = new Period( start.getTime(), end.getTime() );
weeks = Weeks.weeksBetween( new DateTime( start ), new DateTime( end ) ).getWeeks();
days = period.getDays();
hours = period.getHours();
minutes = period.getMinutes();

并获得 5w 5d 8h 15m。

编辑:
感谢您的帮助,但我认为我使用了 JodaTime 周期错误。当然是 5w 5d 8h 15m 的输出,但我想要的更像是这样。

int days = Days.daysBetween( start, end ); // musst be 35 days
int weeks = ( days - ( days % 7 ) ) / 7;
days = days % 7;

现在是我 5 周 0 天的结果。很抱歉给您带来困惑,并感谢您的帮助。

最佳答案

    DateTime start = new DateTime(new Date(2012, 11, 11, 12, 00, 00));
DateTime end = new DateTime(new Date(2012, 12, 16, 20, 15, 00));
Period period = new Period(start, end);
System.out.println("Weeks: " + Weeks.weeksBetween( new DateTime( start ), new DateTime( end ) ).getWeeks());
System.out.println("Days: " + period.getDays());
System.out.println("Hours: " + period.getHours());
System.out.println("Minutes: " + period.getMinutes());

输出为

    Weeks: 5
Days: 5
Hours: 8
Minutes: 15

就像魅力一样
您可以使用下一个解决方案(使用PeriodType)代替 Weeks.weeksBetween

PeriodType periodType = PeriodType.standard().withMonthsRemoved();
Period period = new Period(new Date(2012, 11, 11, 12, 00, 00).getTime(), new Date(2012, 12, 16, 20, 15, 00).getTime(), periodType);
System.out.println(period.getWeeks());

输出为

5

关于java - 两个 Java 日期之间的正确周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13922496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com