【问题标题】:How to calculate remaining days of the month? [duplicate]如何计算当月剩余天数? [复制]
【发布时间】:2021-02-18 14:51:48
【问题描述】:

在 Java 中,我如何计算我们所在月份的剩余天数?

例如,今天是 11 月 5 日,结果将是:

距离月底还有 25 天。

如何做到这一点?

【问题讨论】:

  • 如果你只有一张纸和一支铅笔,你会怎么做?你如何确定每个月有多少天?您将如何计算闰年?考虑一下,而不是立即寻求帮助。
  • @Abra 缺乏研究工作并不是结束问题的理由。如果您愿意,您可以对问题投反对票。
  • @Abra 你错了。 “不努力”不是一个紧密的理由。您可以投票重新开放(如果这不是重复的问题)。如果您发现重复页面,您应该对其发表评论,以免人们投票重新打开重复页面。
  • @mickmackusa 请赐教。 投票结束一个不是可用选项之一的问题的原因是什么?

标签: java date calendar


【解决方案1】:

在 Java 中已经有一段时间了 Java Time API,它允许获取给定月份的天数并使用 java.time.temporal.ChronoUnit.DAYS 计算差异:

LocalDate today = LocalDate.now();
LocalDate endOfMonth = today.withDayOfMonth(today.lengthOfMonth());
long daysBetween = DAYS.between(today, endOfMonth);

【讨论】:

  • 你怎么知道输入是关于哪一年的?
  • @Braiam 据我所知,所有实现.now() 的语言都是通过将其与本地系统的时钟和日历进行比较来实现的。因此,为了回答您的问题,OP 将通过 .now() 返回的内容知道年份。
  • @TylerH 假设那是当年,这在 OP 帖子中并不清楚。我问亚历克斯,因为他假设输入将永远是今天。这不是 OP 所要求的,而是一个例子。
  • @Braiam 短语“我们所在的月份”和“今天是 11 月 5 日”(与当前的 .now() 日期值匹配)在我看来相当清楚地表明,OP 确实表示当前年份(和月份)。
  • 好答案。就口味而言,我倾向于发现today.with(TemporalAdjusters.lastDayOfMonth​()) 更自然。
猜你喜欢
  • 2013-06-26
  • 1970-01-01
  • 2014-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-13
相关资源
最近更新 更多