如果你恰巧查阅到这篇微博,说明你也是为了集体荣誉做出了让步,同命相连,心疼你一秒钟!
废话不多说,代码直接呈上,此处写了个小算法,解释见注释:
范例:
比如:输入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云笔记
随时随地,让你拥有最新,最便捷的掌上云服务