您的位置:首页 > 编程语言 > Java开发

java实现iso的周数计算

2016-01-04 13:30 435 查看
<span style="color: rgb(153, 153, 153); font-family: 'microsoft yahei'; font-size: 13.3400001525879px;">现在流行的my97的js插件,其使用的的日期计算方式的java代码实现,输入需要计算的日期,返回计算出来的年-周数目以每周的周一为1周的开始。如有雷同,请及时联系本人。</span>
private SimpleDateFormat df_yyyyMMdd = new SimpleDateFormat("yyyy-MM-dd");
public String getWeekYear(String today) throws ParseException {
Date date = df_yyyyMMdd.parse(today);
Calendar calendar = Calendar.getInstance();
calendar.setFirstDayOfWeek(Calendar.MONDAY);
calendar.setTime(date);
//先处理第一周从几号开始的问题
Calendar cl = Calendar.getInstance();//计算一年开始周的情况
cl.setFirstDayOfWeek(Calendar.MONDAY);
cl.setTime(df_yyyyMMdd.parse(cl.get(Calendar.YEAR)+"-01"+"-"+cl.getMinimalDaysInFirstWeek()));
System.out.println(cl.getTime()+"-------"+cl.get(Calendar.DAY_OF_WEEK));
//判断如果大于5的话每年的第一周开始的号数推迟到下一周,现在开始计算下一周的开始天数
String startDate=getFristDate_Week(cl.get(Calendar.YEAR),2);
if(cl.get(Calendar.DAY_OF_WEEK)>=6){
calendar.setMinimalDaysInFirstWeek(Integer.valueOf(startDate.split("-")[2]));
}
return calendar.get(Calendar.YEAR)+"-"+calendar.get(Calendar.WEEK_OF_YEAR);
}
/**
* 通过此方法返回对应周的第一天(以周一为开始时间)
*
* @param year
* @param weekNO
* @return
*/
public String getFristDate_Week(Integer year, Integer weekNO) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.WEEK_OF_YEAR, weekNO);
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
return df_yyyyMMdd.format(cal.getTime());
}


[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: