* 获取上周五时间
*/
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中运行,有写错的地方请谅解
public static void main(String[] args) {Calendar cal = Calendar.getInstance()
//Java 中月 1 - 12 月,分别对应是 0 - 11
//设定目前日期为 2000/02/01(29天)
//cal.set(2000, 1, 1)
System.out.println("现在的时间: " + cal.getTime())
System.out.println("本月共有 : " + cal.getActualMaximum(Calendar.WEEK_OF_MONTH) + " 周")
int date_Count = cal.getActualMaximum(Calendar.DAY_OF_MONTH)
//Java 中星期 日、一、二、三、四、五、六,分别对应是 1 - 7
if ((cal.get(Calendar.DAY_OF_WEEK)) == 1) {
System.out.println("今天星期天")
} else if ((cal.get(Calendar.DAY_OF_WEEK)) == 2) {
System.out.println("今天星期一")
} else if ((cal.get(Calendar.DAY_OF_WEEK)) == 3) {
System.out.println("今天星期二")
} else if ((cal.get(Calendar.DAY_OF_WEEK)) == 4) {
System.out.println("今天星期三")
} else if ((cal.get(Calendar.DAY_OF_WEEK)) == 5) {
System.out.println("今天星期四")
} else if ((cal.get(Calendar.DAY_OF_WEEK)) == 6) {
System.out.println("今天星期五")
} else if ((cal.get(Calendar.DAY_OF_WEEK)) == 7) {
System.out.println("今天星期六")
}
}