Java 给定某年的第几周,计算此周的起止日期(已解决)

如果你恰巧查阅到这篇微博,说明你也是为了集体荣誉做出了让步,同命相连,心疼你一秒钟!

废话不多说,代码直接呈上,此处写了个小算法,解释见注释:

范例:

比如:输入2020,3,代表2020年的第三周,需要返回本周的开始日期:2020-01-12和结束日期:2020-01-18。

import java.text.SimpleDateFormat;
import java.util.Calendar;

/**
 * @author :tjm
 * @description:根据某年的第几周,查询本周的起止日期
 */
public class TestWeekToDay {

    public static void main(String[] args) {
        weekToDayFormate(2020, 3);
    }

    // 根据year年的第week周,查询本周的起止时间
    private static void weekToDayFormate(int year, int week){
        Calendar calendar = Calendar.getInstance();
        // ①.设置该年份的开始日期:第一个月的第一天
        calendar.set(year,0,1);
        // ②.计算出第一周还剩几天:+1是因为1号是1天
        int dayOfWeek = 7 - calendar.get(Calendar.DAY_OF_WEEK) + 1;
        // ③.周数减去第一周再减去要得到的周
        week = week - 2;
        // ④.计算起止日期
        calendar.add(Calendar.DAY_OF_YEAR,week * 7 + dayOfWeek);
        System.out.println("开始日期:" + new SimpleDateFormat("yyyy-MM-dd").format(calendar.getTime()));
        calendar.add(Calendar.DAY_OF_YEAR, 6);
        System.out.println("结束日期:" + new SimpleDateFormat("yyyy-MM-dd").format(calendar.getTime()));
    }

}

输出结果:

    开始日期:2020-01-12
    结束日期:2020-01-18

可怜的人类,希望对你有所帮助!

更多精彩,请关注我的"今日头条号":Java云笔记
随时随地,让你拥有最新,最便捷的掌上云服务

发布了147 篇原创文章 · 获赞 169 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/weixin_44259720/article/details/103972908