使用Java日历获取一年中的星期几,将星期日作为星期几

埃里克·B

我正在尝试为我们的财务部门生成一些代码,它们需要一个字段,该字段将为他们提供一年中的当前一周,但以星期日为一周的第一天。因此,例如01-25-16(MM-dd-yyyy)将是第4周。但是,当我尝试使用java.util.Calendarcalendar.setFirstDayOfWeek到周日时,它告诉我这是第5周,因为它似乎是从12月底开始算到1月3日作为第1周。

这是我到目前为止编写的代码:

private static int getWeekOfYearBySunday(DateTime dt){
    Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(dt.getMillis());
    calendar.setFirstDayOfWeek(Calendar.SUNDAY);

    return calendar.get(Calendar.WEEK_OF_YEAR);
}

即使返回星期日的星期几,也应该返回4,这将返回星期数5。

您必须进行更改minimalDaysInFirstWeek,请参阅Calendar#setMinimalDaysInFirstWeek(int)

设置一年中第一周所需的最少天数;例如,如果第一周定义为包含一年中第一个月第一天的一周,则使用值1调用此方法。如果必须整周,则使用值7。

另请参阅GregorianCalendar

例如,1998年1月1日是星期四。如果getFirstDayOfWeek()isMONDAYgetMinimalDaysInFirstWeek()is 4(ISO 8601标准兼容设置),则1998年的第1周开始于1997年12月29日,并于1998年1月4日结束。周年是1998年,是日历年度的最后三天。但是,getFirstDayOfWeek()SUNDAY1998年的第1周从1998年1月4日开始,到1998年1月10日结束;1998年的前三天是1997年第53周的一部分,而一周是1997年。

但是,如果您为自己的财务部门编写代码,则宁愿使用权限Locale创建日历,而不是更改某些属性,请参阅Calendar#getInstance(Locale)

使用默认时区和指定的语言环境获取日历。Calendar基于与给定的语言环境的默认时区当前时间返回。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Python确定从星期日开始的一年中的星期几?

获取一年中的星期几,其中一周的第一天是星期日

碳:知道一年中的星期几时,获取星期几的开始和结束日期

在Java中,如何使用系统的默认语言环境(语言)获取星期几的字符串(星期日,星期一,...,星期六)

如何获取星期几和一年中的月份?

如何使用“日期”命令显示一年中的星期几?

如何使用Google表格获取与上一年的星期数和星期几相同的日期?

查找一年中所有星期日的日期的脚本

Swift-打印一年中的当前星期几

Objective-C / iOS:获取星期几(星期日)中特定日期的日期

在Julia中:“星期几”默认设置为“星期一” = 1,如何设置“星期日” = 1

JSON数据-使用Javascript / Jquery按星期几(星期日,星期一,星期二,星期三,星期四,星期五,星期六)分组

如何从星期几和星期几获得前一年

使用MYSQL从一年中给定的一周(从星期日开始)的所有帖子总数中进行选择

从0获取一年中的星期范围

Moment JS获取一年中的星期数

从一年中的星期中获取月份

使用Google表格/ Excel获取从今天起的当前星期几(星期日)

在Java中不使用日历功能查找星期几

如何使用日历规则在SQL中获得一年中的星期?

如何获取星期几和年中的某天

在JavaScript中获取星期几

使用NSDate获取星期几

如何在php中获取年,月,月中的星期几和星期几的日期

在Java中打印星期几

Java获取给定日期的一年中的星期

如何使用用户输入的日期获取一年中的星期

获取星期几的日期

从日期获取星期几