计算日期属于当月第几周(日期周计算)

本文周计算时间方式为:当月第一个周一为第一周 计算

  • 获取月第一个周一、从当月第一天开始找
  • 第一个周一时间与 sourceTime [传入时间对比],sourceTime在第一个周一时间之前 表示属于上月的
  • sourceTime 与第一个周一时间差,在以7天计算

/*** @author aiyuan* @date 2021/7/27*/
public class DateWeekUtil {/***获取当月第一天*/public static LocalDateTime getFirstLocalDayOfMonth(LocalDateTime localDateTime) {return localDateTime.with(TemporalAdjusters.firstDayOfMonth()).with(LocalTime.MIN);}/***获取当月第一周  以第一个周一为准*/private static LocalDateTime getFirstMonday(LocalDateTime sourceTime) {LocalDateTime firstMondayOfMonth = getFirstLocalDayOfMonth(sourceTime);for (int i = 0; i < 6; i++) {DayOfWeek dayOfWeekTemp = firstMondayOfMonth.getDayOfWeek();if (dayOfWeekTemp.equals(DayOfWeek.MONDAY)) {break;}//往后推一天firstMondayOfMonth = firstMondayOfMonth.plusDays(1);}return firstMondayOfMonth;}/*** 获取几月份的第几周 [X月份第X周]**/public static String getMonthNoAndWeekNo(LocalDateTime sourceTime) {String monthNoAndWeekNo;//获取当月的第一天//获取月第一个周一,从当月第一天开始找LocalDateTime firstMondayOfMonth = getFirstMonday(sourceTime);//比较当月的第一个星期一 < = 参数时间if (firstMondayOfMonth.isBefore(sourceTime) || firstMondayOfMonth.isEqual(sourceTime)) {//当月第一个周一在当前时间之前 firstMondayOfMonth<=sourceTime//计算两个时间间隔天数int dayOfMonthFirstMonday = firstMondayOfMonth.getDayOfMonth();int dayOfMonthSourceTime = sourceTime.getDayOfMonth();int diffDays = dayOfMonthSourceTime - dayOfMonthFirstMonday;//第几周weekNoint weekNo = (diffDays / 7) + 1;//月份int monthNo = sourceTime.getMonth().getValue();monthNoAndWeekNo = monthNo + "月份" + "第" + weekNo + "周";} else {//如果当月的第一个周一大于参数时间,则要计算到上个月份去//获取上一个月的第一个周一LocalDateTime lastMontLocalDateTime = sourceTime.minusMonths(1);//上个月的第一天//从上个月的第一天开始找周一LocalDateTime firstMondayOfMonthLast = getFirstMonday(lastMontLocalDateTime);//  计算两个时间间隔天数 (上月第一个周一 减去 当前时间)Duration duration = Duration.between(firstMondayOfMonthLast, sourceTime);long diffDays = duration.toDays(); //相差的天数//第几周weekNolong weekNo = (diffDays / 7) + 1;//月份int monthNo = firstMondayOfMonthLast.getMonth().getValue();//汉字版月份monthNoAndWeekNo = monthNo + "月份" + "第" + weekNo + "周";}return monthNoAndWeekNo;}}

JAVA 计算日期属于当月第几周(日期周计算)相关推荐

  1. java日期加减秒_Java日期——年、月、日、时、分、秒、周加减计算

    Java日期--年.月.日.时.分.秒.周加减计算 Java日期--年.月.日.时.分.秒.周加减计算 1.Pom依赖 joda-time joda-time 2.9.9 2.示例代码 package ...

  2. PLSQL计算日期是当月第几周

    网上查询的方法都是这个: SELECT TO_CHAR (p_date, 'W') INTO v_week FROM DUAL; 它实际上是星期N在当月第几次出现. 如本月的第1天是个周四,那么为个月 ...

  3. Java 周日期计算工具,获取当前第几周,按周数获取周一至周日,按日期获取周一至周日

    记一个自己写的工具类: 1.按时间获取当前第几周 getzs 3.按日期获取周一至周日getgetBetweenDates2 4.按年份跟周数获取周一至周日 getgetBetweenDates3 结 ...

  4. java表格计算,JAVA表格两日期间月,周,日计算

    JAVA报表两日期间月,周,日计算 //计算天数 public List day(String dates, String datee) throws ParseException { List da ...

  5. java 日期计算类_java日期计算工具类【包含常用的日期计算方法】

    package com.test; import java.sql.Timestamp; import java.text.SimpleDateFormat; import java.util.Cal ...

  6. python输入日期计算天数_用python计算日期(1、返回指定日期所在的一周,2,计算一个日期的月份和天数加减)...

    放两个小轮子吧,欢迎测试bug,然后告诉我: 1.返回指定日期所在的一周 2,计算一个日期的月份和天数加减 # -*- coding: utf-8 -*- """ Cre ...

  7. java计算今天是今年的第几周_java calendar类根据当前日期时间,计算当前日期在当前月是第几周,与周跨月问题,...

    第一步 先根据当前日期时间 计算出本周的开始时间与结束日期 第二步 判断当前日期大于等于本周开始日期,并且当前日期小于等于本周结束日期, 就把本周开始日期当做条件计算出当前日期是第几周 // 周跨月也 ...

  8. php 计算一年中周数,php 计算出一年中每周的周一日期

    最近接到一个任务,归纳起来,就是:要算出每年当中,每周的周一日期.想了一会,看了下date函数,深入了解了一下date函数各个参数的含义之后,终于把这道题做出来了! 在date()函数中,有一个参数对 ...

  9. java中获取当前一周日期和上周下周日期当前周数

    1.获取当前日期所在周的所有日期  public static List<Date> dateToCurrentWeek(Date myDate) {Calendar cal = Cale ...

最新文章

  1. 2022-2028年中国废旧塑料回收产业研究及前瞻分析报告
  2. SAP S4HANA MRP LIVE
  3. 嵌入式java闹钟 实验报告_《Java程序设计》第五次实验实验报告
  4. 前端运行python代码几种方式_前的解释|前的意思|汉典“前”字的基本解释
  5. ntoskrnl.exe文件丢失或损坏的解决方法
  6. day24-1 元类
  7. php怎么分割页面,用html如何把页面分割成多个文件,由多个文件拼接而成?
  8. vnc连接服务器怎么修改配置,vnc连接服务器怎么配置
  9. 在.net平台上运行伪JAVA
  10. Linux系统中各种系统日志文件主要存放在系统中哪个目录
  11. python cls参数_python cls self 讲解
  12. ssm 退出登录 java_Spring+SpringMVC+Mybatis实现简单的用户的登录和退出
  13. CentOS7各个版本镜像下载地址
  14. 神经网络检索方法与一种结合local和distributed文本相似度算法
  15. 有传递函数画matlab,matlab画传递函数曲线
  16. 【斯坦福大学公开课】Stanford NLP: Lesson 1 Intro
  17. 怎样练出完美肌肉:[2]完美背肌
  18. HTML代码 可在线运行查看效果的HTML在线编辑器
  19. Excel计算个人所得税的计算公式:
  20. ABAP BDC_OKCODE 解释

热门文章

  1. 计算机网络终端接口知识,计算机网络实用技术知识点之ISDN接口及配置
  2. zedboard移植linux内核,[干货]手把手教你用Zedboard学习Linux移植和驱动开发
  3. 牛客练习赛56 A-小蒟和他的乐谱
  4. 《程序员的自我修养》读书笔记——动态链接
  5. 阿里云ESC云盘挂载
  6. 微机原理及故障的维修(BIOS)
  7. mysql create definer_Mysql CREATE DEFINER
  8. [译] Chrome 73 开发者工具新特性
  9. 2022网络安全技术及应用复习重点
  10. 8款电子邮件客户端比较【转】