java获取指定日期所在周的 周一 和 周日

客官°小女子只卖身不卖艺 2022-11-20 06:58 1348阅读 0赞

获取指定日期所在周的周一:

  1. /** * 获取指定日期所在周的周一 * * @param date 日期 */
  2. public static Date getFirstDayOfWeek(Date date) {
  3. Calendar c = Calendar.getInstance();
  4. c.setTime(date);
  5. if (c.get(Calendar.DAY_OF_WEEK) == 1) {
  6. c.add(Calendar.DAY_OF_MONTH, -1);
  7. }
  8. c.add(Calendar.DATE, c.getFirstDayOfWeek() - c.get(Calendar.DAY_OF_WEEK) + 1);
  9. return c.getTime();
  10. }

获取指定日期所在周的周日:

  1. /** * 获取指定日期所在周的周日 * * @param date 日期 */
  2. public static Date getLastDayOfWeek(Date date) {
  3. Calendar c = Calendar.getInstance();
  4. c.setTime(date);
  5. // 如果是周日直接返回
  6. if (c.get(Calendar.DAY_OF_WEEK) == 1) {
  7. return date;
  8. }
  9. //System.out.println(c.get(Calendar.DAY_OF_WEEK));
  10. c.add(Calendar.DATE, 7 - c.get(Calendar.DAY_OF_WEEK) + 1);
  11. return c.getTime();
  12. }

测试:

  1. public static void main(String[] args) {
  2. Calendar c = Calendar.getInstance();
  3. c.setTime(new Date());
  4. c.add(Calendar.DATE, 3);
  5. SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  6. System.out.println("当前日期:" + sf.format(c.getTime()));
  7. System.out.println(sf.format(getFirstDayOfWeek(c.getTime())));
  8. System.out.println(sf.format(getLastDayOfWeek(c.getTime())));
  9. }

结果:
在这里插入图片描述

参考:https://www.jianshu.com/p/b3bdd6c34e66

发表评论

表情:
评论列表 (有 0 条评论,1348人围观)

还没有评论,来说两句吧...

相关阅读