Java根据当前第几周获取周一和周日的日期方法

Posted 开心的码字达

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java根据当前第几周获取周一和周日的日期方法相关的知识,希望对你有一定的参考价值。

前言:

我们经常会遇到查询根据某日的日期查询数据,根据第几周查询数据,根据月份查询数据。但有的时候,接口可能需要一个开始日期和一个结束日期来查询相应的数据,然而前端的时间控件只能获取202213(2022年第13周)这样的入参,并不能给到我们13周的开始日期和结束日期,所以这时候就需要后端同学进行转换了。

今天这篇文章就讲解下如何根据第几周获取周一和周日的日期和根据月份获取第一天和最后一天。

正文:

1.根据第几周获取周一和周日的代码

使用注意点,周的日期的格式202213,中间有个判断单独拿出来讲下,就是判断本年第一周的剩余天数是否大于3,根据这个准则来判断这一周属于不属于今年的第一周。(这个准则是我们前端日期控件的判断准则,为了保持一致所以我这里也加了这个判断)

public static Map<String,String> getTheSpecifiedYearAndWeekDate(String date) 
		date = date.replace("-", "");
		Integer year = Integer.valueOf(date.substring(0, 4));
		Integer week = Integer.valueOf(date.substring(4, 6));
        Map<String,String> timeMap=new HashMap<>();
        Calendar calendar = Calendar.getInstance();
        calendar.set(year, 0, 1);
        int zhouji=calendar.get(Calendar.DAY_OF_WEEK);
        System.out.println(calendar.get(Calendar.DAY_OF_WEEK));
       //计算当年第一周还剩几天
        int dayOfWeek = 0;
        if (1==zhouji)
            dayOfWeek=1;
        
        if (2==zhouji)
            dayOfWeek=7;
        
        if (3==zhouji)
            dayOfWeek=6;
        
        if (4==zhouji)
            dayOfWeek=5;
        
        if (5==zhouji)
            dayOfWeek=4;
        
        if (6==zhouji)
            dayOfWeek=3;
        
        if (7==zhouji)
            dayOfWeek=2;
        
        System.out.println(dayOfWeek);
        if(dayOfWeek>3)
            week = week -2;
        else 
            week = week -1;//周数减去第一周再减去要得到的周
        

        calendar.add(Calendar.DAY_OF_YEAR, week *7+dayOfWeek);
        timeMap.put("fisrstDay",new SimpleDateFormat("yyyy-MM-dd").format(calendar.getTime()));
        calendar.add(Calendar.DAY_OF_YEAR, 6);
        timeMap.put("lastDay",new SimpleDateFormat("yyyy-MM-dd").format(calendar.getTime()));
       return timeMap;
    

2.根据当前月获取月初和月末的日期。

使用注意点,月的日期的格式202204

	public static Map<String,String> getMonthBeginToEnd(String date)
		Map<String,String> timeMap=new HashMap<>();
		date = date.replace("-", "");
		Integer year = Integer.valueOf(date.substring(0, 4));
		Integer month = Integer.valueOf(date.substring(4, 6));
		String fisrstDay = getFisrtDayOfMonth(year, month);
		String lastDay = getLastDayOfMonth(year, month);
		timeMap.put("fisrstDay",fisrstDay);
		timeMap.put("lastDay",lastDay);
		return timeMap;
	

总结:

我是阿达,一名喜欢分享知识的程序员,时不时的也会荒腔走板的聊一聊电影、电视剧、音乐、漫画,这里已经有41234位小伙伴在等你们啦,感兴趣的就赶紧来点击关注我把,哪里有不明白或有不同观点的地方欢迎留言!

以上是关于Java根据当前第几周获取周一和周日的日期方法的主要内容,如果未能解决你的问题,请参考以下文章

求关于js根据日期判断此日期是在一年中的第几周

如何计算当前日期是当年的第几周

C#中用当前日期算周的若干问题?

java获取某个时间的上周一和周日

java 获取iso 标准的日期的第几周

mysql 获取当前日期周一和周日