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

java基础代码----根据日期字符串 查找对应的周期的起始位置和结束位置

2017-12-02 14:33 459 查看
/**
* 根据日期字符串 查找对应的周期的起始位置和结束位置
* @param dateStr 日期字符串  20171202
* @return 对应的起始位置(周日)-对应的结束位置(周六)
*/
public String getWeekRange(String dateStr) {
if (!dateStr.matches("\\d{8}")) { // 8位数字
return "";
}

Calendar calendar = Calendar.getInstance();
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
Date date = null;
String startWeekDate = "", endWeekDate = "";
try {
date = format.parse(dateStr);
calendar.setTime(date);
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1;
int day = calendar.get(Calendar.DAY_OF_MONTH);
int day_of_week = calendar.get(Calendar.DAY_OF_WEEK);

startWeekDate = formatDate(format.parse(year + "" + month + "" + (day - day_of_week + 1)));
endWeekDate = formatDate(format.parse(year + "" + month + "" + (day + 7 - day_of_week)));
} catch (Exception e) {
e.printStackTrace();
}
return startWeekDate + "~" + endWeekDate;
}

private String formatDate(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int myyear = calendar.get(Calendar.YEAR);
int mymonth = calendar.get(Calendar.MONTH) + 1;
int myday = calendar.get(Calendar.DAY_OF_MONTH);

String myMonthStr = "", myWeekDayStr = "";
if (mymonth < 10)
myMonthStr = "0" + mymonth;
else
myMonthStr = String.valueOf(mymonth);

if (myday < 10)
myWeekDayStr = "0" + myday;
else
myWeekDayStr = String.valueOf(myday);

return (myyear + "" + myMonthStr + myWeekDayStr);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 周期
相关文章推荐