最近做项目,用户要求 周定义:上周周三开始,至本周周二作为一周。
下面是我写的类:
/**
* 根据月份,查找月份对应的的周
* 每周周二的日期记录到list
* @param datetime
* @return
* @author Juannyoh
* @date 2014-7-17下午03:48:17
*/
public List<HashMap<String,Object>> getWeek2Bymonth(String datetime){
List<HashMap<String,Object>> weeklist=new ArrayList<HashMap<String,Object>>();
List<HashMap<String,Object>> week2list=new ArrayList<HashMap<String,Object>>();
Calendar calendar = Calendar.getInstance();
Date nowdate = calendar.getTime();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String tomonth=df.format(nowdate).substring(0, 7);//获得当前月份
if(datetime.equals("")||datetime==null||datetime.equals("null")){
datetime=tomonth;
}
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM");
DateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd");
Date date1;
int count=1;
try {
date1 = dateFormat.parse(datetime);
calendar.setTime(date1);
int days = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);//获取一个月内最大的天数
for(int i=1;i<=days;i++){
Date date2 = dateFormat1.parse(datetime + "-" + i);
calendar.clear();
calendar.setTime(date2);
int k = new Integer(calendar.get(Calendar.DAY_OF_WEEK));//获取该天是星期几
HashMap<String,Object> map=new HashMap<String,Object>();
if(k==3){
Date times=new SimpleDateFormat("yyyy-MM-dd").parse(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1) + "-"+ calendar.get(Calendar.DAY_OF_MONTH));
//System.out.println("第"+count+"个星期二是:"+dateFormat1.format(times));
map.put("seardays", dateFormat1.format(times));
weeklist.add(map);
count++;
}
}
//System.out.println(days);
HashMap<String,Object> map=weeklist.get(0);
String date=map.get("seardays").toString().trim();
Date date2 = dateFormat1.parse(date);
calendar.clear();
calendar.setTime(date2);
calendar.add(Calendar.DATE, -7);
Date times=new SimpleDateFormat("yyyy-MM-dd").parse(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1) + "-"+ calendar.get(Calendar.DAY_OF_MONTH));
HashMap<String,Object> maps=new HashMap<String,Object>();
maps.put("seardays", dateFormat1.format(times));
//weeklist.add(maps);
//System.out.println("往前推一个星期是:"+dateFormat1.format(times));
week2list.add(maps);
for(int i=0;i<weeklist.size();i++){
week2list.add(weeklist.get(i));
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return week2list;
}
不知道怎么粘贴代码块儿,搞的每次都是这样显示,不直观。。