关于JAVA使用Calendar操作自然周的工具类
这个工具类中目前有三个关于自然周的方法。
方法一:通过输入当前时间计算当前时间是本年度第几个自然周
public static int getWeekofyearByDatestr(Date date){
Calendar calendar = Calendar.getInstance();
calendar.setFirstDayOfWeek(Calendar.MONDAY);
calendar.setTime(date);
return calendar.get(Calendar.WEEK_OF_YEAR);
}
方法二:通过传入需要查询的年份和需要查询的第几个自然周 获得该自然周开始的日期 以周一为自然周的开始
public static String getStartDayOfWeekNo(int year,int weekNo){
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
cal.set(Calendar.YEAR, year);
cal.set(Calendar.WEEK_OF_YEAR, weekNo);
int _year = cal.get(Calendar.YEAR);
int _month = cal.get(Calendar.MONTH ) +1;
int _day = cal.get(Calendar.DAY_OF_MONTH);
String year_str = _year + "";
String month_str = _month + "";
String day_str = _day + "";
if(_year < year){
return year +"-01-01";
}
if(_month < 10){
month_str = "0" + month_str;
}
if(_day < 10){
day_str = "0" + day_str;
}
return year_str + "-" + month_str + "-" + day_str;
}
方法三:通过传入需要查询的年份和需要查询的第几个自然周 获得该自然周结束的日期 以周一为自然周的开始
public static String getEndDayOfWeekNo(int year,int weekNo){
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
cal.set(Calendar.WEEK_OF_YEAR, weekNo);
cal.add(Calendar.DAY_OF_WEEK, 6);
int _year = cal.get(Calendar.YEAR);
int _month = cal.get(Calendar.MONTH ) +1;
int _day = cal.get(Calendar.DAY_OF_MONTH);
String year_str = _year + "";
String month_str = _month + "";
String day_str = _day + "";
if(_year > year){
return year +"-12-31";
}
if(_month < 10){
month_str = "0" + month_str;
}
if(_day < 10){
day_str = "0" + day_str;
}
return year_str + "-" + month_str + "-" + day_str;
}