67,515
社区成员
发帖
与我相关
我的任务
分享
package com.java.test;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class DummyMethod {
public static void main(String[] args) {
String dtf = "yyyy.MM.dd HH:mm:ss.SSS";
DateFormat df = new SimpleDateFormat(dtf);
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
{
// 以周一作为本周的第一天
Calendar cal1 = (Calendar)cal.clone();
System.out.println("Time range of current week:");
cal1.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
System.out.println(df.format(cal1.getTime()));
cal1.add(Calendar.WEEK_OF_YEAR, 1);
System.out.println(df.format(cal1.getTime()));
}
{
// 以周日作为本周的第一天
Calendar cal2 = (Calendar)cal.clone();
System.out.println("Time range of current week:");
cal2.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
System.out.println(df.format(cal2.getTime()));
cal2.add(Calendar.WEEK_OF_YEAR, 1);
System.out.println(df.format(cal2.getTime()));
}
}
}
博文中输出的是年月日,并且打出本周的范围时,以周一到周日的日期打出。
而我是以当前周一到下周一的方式打出,代码略不同,少了一行设置星期的代码。
package com.java.test;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class DummyMethod {
public static void main(String[] args) throws ParseException {
Calendar cal = Calendar.getInstance();
// 默认为当前时间。也指定其他时间,参数为 long 或 Date。
// cal.setTimeInMillis(ts);
// cal.setTime(dt);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
int offset = 0;
// 以周一作为本周的第一天
switch (cal.get(Calendar.DAY_OF_WEEK)) {
case Calendar.SUNDAY:
offset--;
case Calendar.SATURDAY:
offset--;
case Calendar.FRIDAY:
offset--;
case Calendar.THURSDAY:
offset--;
case Calendar.WEDNESDAY:
offset--;
case Calendar.TUESDAY:
offset--;
case Calendar.MONDAY:
break;
default:
break;
}
// 以周日作为本周的第一天
// switch (cal.get(Calendar.DAY_OF_WEEK)) {
// case Calendar.SATURDAY:
// offset--;
// case Calendar.FRIDAY:
// offset--;
// case Calendar.THURSDAY:
// offset--;
// case Calendar.WEDNESDAY:
// offset--;
// case Calendar.TUESDAY:
// offset--;
// case Calendar.MONDAY:
// offset--;
// case Calendar.SUNDAY:
// break;
// default:
// break;
// }
String dtf = "yyyy.MM.dd HH:mm:ss.SSS";
DateFormat df = new SimpleDateFormat(dtf);
System.out.println("Time range of current week:");
cal.add(Calendar.DAY_OF_MONTH, offset);
System.out.println(df.format(cal.getTime()));
cal.add(Calendar.WEEK_OF_YEAR, 1);
System.out.println(df.format(cal.getTime()));
}
}
Time range of current week:
2018.01.01 00:00:00.000
2018.01.08 00:00:00.000