当前位置: 首页 > 面试题库 >

Java时间:获取特定年份的最大周数

鞠征
2023-03-14
问题内容

我只找到了Joda Time的解决方案。

仅当最后一天不在第一周时,我的解决方案才有效:

LocalDate.now() // or any other LocalDate
  .withDayOfMonth(31)
  .withMonth(12)
  .get(weekFields.weekOfWeekBasedYear())

那么在Java Time中(例如在Joda Time中)正确的方法是什么?


问题答案:

可使用java.time.*API 直接获得此信息。

关键方法已rangeRefinedBy(Temporal)启用TemporalField。它允许您获得一个ValueRange为字段提供最小值和最大值的对象,并通过传入的时间对象对其进行优化

要了解一年中有多少ISO周,请执行以下操作:

LocalDate date = LocalDate.of(2015, 6, 1);
long weeksInYear = IsoFields.WEEK_OF_WEEK_BASED_YEAR.rangeRefinedBy(date).getMaximum();
System.out.println(weeksInYear);

请注意,您传递的日期用于确定答案。因此,在传递1月初或12月下旬的日期时,请确保您了解基于ISO周的日历的工作原理,以及日历年与周年之间的差异。



 类似资料:
  • 问题内容: 如何通过Joda-Time获得特定年份的最大周数? 问题答案: @cody评论 两种方法之间的区别 .withWeekOfWeekyear()和.withWeekyear() 例

  • 问题内容: 如何知道特定年份的特定月份有多少天? 问题答案: Java 8及更高版本 @沃伦·诺科斯(Warren M. 如果你尝试使用Java 8的新Date and Time API,则可以使用java.time.YearMonthclass。请参阅Oracle教程。 测试:尝试a年的一个月: Java 7及更早版本 创建日历,设置年份和月份并使用 getActualMaximum 测试:尝试

  • 问题内容: Java 8的类有一个方法,,它使您可以从字符串A-z,a-z字母定义格式。这些例子并没有明确的区别y,今年的时代和Y,以星期为一年。它是什么? 问题答案: 与2006-W52一样,这是“年-周”样式日期的年值。如果有问题的一周跨越年份边界,则可能偏离年份值+1或-1。

  • 我试图只得到今年的数据,但我的“where子句”似乎有问题。但当我在where子句中输入特定年份时,它就起作用了。除了where子句之外,所有的东西都在工作。 我希望你们能帮我。

  • 问题内容: 我正在使用JavaScript类,并尝试使用方法获取当前日期。但显然是加载系统日期和时间。我正在从印度运行代码,但我想使用相同的方法来获取英国的日期和时间。我怎样才能做到这一点? 问题答案: 如果您知道UTC偏移量,则可以使用以下函数传递它并获取时间:

  • 问题内容: 我想获得任何一年中的周数。即使被接受为全球通用的答案,对于日历,而实际上有几个星期。 有什么方法可以计算出来,或者有什么函数可以帮助我? 问题答案: 根据维基百科关于ISO周日期格式的文章,您可以使用以下代码进行计算。 更新: 似乎来自@Samuel的答案更好,并且没有Luca提到的错误 快速一线: