import java.util.Calendar
public class DataTest {
public static void main(String[] args) {
printWeekdays()
}
private static final int FIRST_DAY = Calendar.MONDAY
private static void printWeekdays() {
Calendar calendar = Calendar.getInstance()
setToFirstDay(calendar)
for (int i = 0 i < 7 i++) {
printDay(calendar)
calendar.add(Calendar.DATE, 1)
}
}
private static void setToFirstDay(Calendar calendar) {
while (calendar.get(Calendar.DAY_OF_WEEK) != FIRST_DAY) {
calendar.add(Calendar.DATE, -1)
}
}
private static void printDay(Calendar calendar) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd EE")
System.out.println(dateFormat.format(calendar.getTime()))
}
}
/*** 获取上周五时间
*/
public Date lastFirday() {
//作用防止周日得到本周日期
Calendar calendar = Calendar.getInstance()
while (calendar.get(Calendar.DAY_OF_WEEK) != Calendar.MONDAY) {
calendar.add(Calendar.DAY_OF_WEEK, -1)
}
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1
int offset = 7 - dayOfWeek
calendar.add(Calendar.DATE, offset - 9)
return DateTimeUtil.getFirstDayOfWeek(calendar.getTime(), 6)//这是从上周日开始数的到本周五为6
}
/**
* 获取上周一时间
*/
public Date lastMonday() {
Calendar calendar = Calendar.getInstance()
while (calendar.get(Calendar.DAY_OF_WEEK) != Calendar.MONDAY) {
calendar.add(Calendar.DAY_OF_WEEK, -1)
}
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1
int offset = 1 - dayOfWeek
calendar.add(Calendar.DATE, offset - 7)
return DateTimeUtil.getFirstDayOfWeek(calendar.getTime(), 2)
}
参考
请采纳,谢谢
1、使用Calendar类。Calendar cal = Calendar.getInstance()
cal.set(Calendar.YEAR, 2016)// 2016年
cal.set(Calendar.WEEK_OF_YEAR, 10)// 设置为2016年的第10周
cal.set(Calendar.DAY_OF_WEEK, 2)// 1表示周日,2表示周一,7表示周六
Date date = cal.getTime()
以上就能得到2016年第10周的周一的Date时间。
注:上面代码是手工敲的,没有放到eclipse中运行,有写错的地方请谅解