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

计算给定年份的周数

高弘光
2023-03-14
问题内容

我想获得任何一年中的周数。即使52被接受为全球通用的答案,对于日历201520202026实际上有53几个星期。

有什么方法可以计算出来,或者有什么函数可以帮助我?


问题答案:

根据维基百科关于ISO周日期格式的文章,您可以使用以下代码进行计算。

    Calendar cal = Calendar.getInstance();
    cal.set(Calendar.YEAR, 2015);
    cal.set(Calendar.MONTH, Calendar.DECEMBER);
    cal.set(Calendar.DAY_OF_MONTH, 31);

    int ordinalDay = cal.get(Calendar.DAY_OF_YEAR);
    int weekDay = cal.get(Calendar.DAY_OF_WEEK) - 1; // Sunday = 0
    int numberOfWeeks = (ordinalDay - weekDay + 10) / 7;
    System.out.println(numberOfWeeks);

更新:

似乎来自@Samuel的答案更好,并且没有Luca提到的错误

快速一线:

Integer weeksOfYear = Calendar.getInstance().getActualMaximum(Calendar.WEEK_OF_YEAR);


 类似资料:
  • 我正在努力寻找一个简单而有效的解决方案来计算一个月中的一周和一天。例如,如果给定的日期是2018年3月5日的第一个星期一,那么我想得到接下来6个月每个月的第一个星期一的日期,例如:和2018年5月3日星期一等等。 我试着从这个问题中使用以下代码。然而,下面的代码只返回我希望它返回整个日期的周数。 但是我很困惑,不知道如何修改上面的代码来解决这个问题。任何帮助都将不胜感激。

  • 问题内容: 给定一个星期数,例如,您如何计算从星期一开始的那一周中的天数? 第40周的rfc-3339输出示例: 问题答案: PHP 下面的帖子是因为我是个白痴,没有正确阅读问题,但是会获得从星期一开始的一周中的日期,给出的是日期,而不是星期数。 在PHP中 ,改编自PHP日期手册页上的这篇文章 来自的输出:

  • 我目前正在制作一个excel模型,其中日期是其中的一个重要方面。然而,由于信息来自不同的来源,有时它的结构是不现实的。我在计算年和周的组合时遇到了问题,比如添加或减去周。开始数据如下所示: 现在,如果我想加上例如3周,我可以通过加上3来做到这一点,结果是201528。然而,当涉及到201552(有时是yyyy53)时,这就更难了,因为我需要计算到2016年。 回溯到2014年或更早的时候,情况也是

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

  • 问题内容: 给定YYYYMMDD格式的出生日期,如何计算以岁为单位的年龄?是否可以使用该功能? 我正在寻找比现在使用的解决方案更好的解决方案: 问题答案: 我会为了提高可读性: 免责声明: 这也存在精度问题,因此也不能完全信任。它可能会关闭几个小时,有时会关闭,也可能会在夏令时关闭(取决于时区)。 相反,如果精度非常重要,我建议为此使用库。另外,可能是最准确的,因为它不依赖于一天中的时间。

  • 问题内容: 我正在处理Java作业,它涉及在用户指定月份和年份之后打印日历。我不能使用Calendar或GregorianCalendar类。我的问题是日历在星期六的第一天无法正确打印月份。我已经看了大约一个小时的代码,但不确定出什么问题。我正在使用Zeller的Congruence查找以“ h”表示的每月的第一天。 例如,2008年3月的日历(错误地)如下所示: 这是我的代码: 问题答案: 从星