当前时间所在周and所在月起始结束日期定位
package com.zyna.servlet;import java.io.IOException;import java.io.PrintWriter;import java.sql.ResultSet;import java.sql.SQLException;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.xml.parsers.ParserConfigurationException;import com.zyna.db.DbAccessor;import com.zyna.dbstructure.XML;import com.zyna.pojo.OperateTask; public class SampleServlet extends HttpServlet { private static final long serialVersionUID = 1L; public SampleServlet() { super(); } protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { XML xml = new XML(); try {xml.init();} catch (ParserConfigurationException e1) {// TODO Auto-generated catch blocke1.printStackTrace();} //SampleServlet?time="+time+"justUnit="+justUnit+"department="+department+"eventType="+eventType;//接收 查询参数 String time = request.getParameter("time"); String justUnit = request.getParameter("justUnit"); String department = request.getParameter("department"); String eventType = request.getParameter("eventType"); //response.setContentType("text/html"); //response.setCharacterEncoding("GBK"); response.setContentType("text/xml"); response.setCharacterEncoding("UTF-8"); PrintWriter out = response.getWriter(); //connection database DbAccessor dbAccessor = new DbAccessor(); //sql StringBuffer sql = new StringBuffer(256); sql.append("SELECT ot_id, ot_item, ot_type, ot_level, ot_frequency, ot_desc, ot_attachment, ot_busid, ot_createtime, ot_createuser FROM t_opreate_task where 1=1");if(null != time && time != ""&&null != justUnit && justUnit != ""){Map<String,String> map = splitDateStr(time);String day = map.get("day");String month = map.get("month");String year = map.get("year");String startDay = "";String endDay = "";//周报表if("week".equals(justUnit)){Map<String,Date> map_Week = getThisWeekStartDayAndEndDay(Integer.parseInt(year),Integer.parseInt(month),Integer.parseInt(day));Date calFirstDayInThisWeek = map_Week.get("calFirstDayInThisWeek");Date calLastDayInThisWeek = map_Week.get("calLastDayInThisWeek");String calFirstDayInThisWeek_Str = dateToString(calFirstDayInThisWeek,"yyyy-MM-dd");startDay = calFirstDayInThisWeek_Str;String calLastDayInThisWeek_Str = dateToString(calLastDayInThisWeek,"yyyy-MM-dd");endDay = calLastDayInThisWeek_Str;}//月报表else if("month".equals(justUnit)){Map<String,Date> map_Month = getThisMonthStartDayAndEndDay(Integer.parseInt(year),Integer.parseInt(month),Integer.parseInt(day));Date calFirstDayInThisMonth = map_Month.get("calFirstDayInThisMonth");Date calLastDayInThisMonth = map_Month.get("calLastDayInThisMonth");String calFirstDayInThisMonth_Str = dateToString(calFirstDayInThisMonth,"yyyy-MM-dd");String ccalLastDayInThisMonth_Str = dateToString(calLastDayInThisMonth,"yyyy-MM-dd");startDay = calFirstDayInThisMonth_Str;endDay = ccalLastDayInThisMonth_Str;}else{return;} //where ot_createtime between '2011-04-13' and '2011-11-13';sql.append(" and") .append(" ot_createtime") .append(" between") .append(" '") .append( startDay) .append(" '") .append(" and") .append(" '") .append( endDay) .append(" '") ;//System.out.println("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");}if(null != time && time != "" && (justUnit=="" || justUnit == null)){Map<String,String> tempMap = splitDateStr(time);String day = tempMap.get("day");String month = tempMap.get("month");String year = tempMap.get("year");Calendar calendar = new GregorianCalendar(Integer.parseInt(year), Integer.parseInt(month)-1, Integer.parseInt(day));Date date = calendar.getTime();String date_Str = dateToString(date,"yyyy-MM-dd");sql.append(" and") .append(" ot_createtime = ") .append(" '") .append(date_Str) .append(" '") ;}if(null != department && department != ""){sql.append(" and") .append(" ot_busid=") .append(" '") .append(department) .append(" '") ;}if(null != eventType && eventType != "" && 1==1){sql.append(" and") .append(" ot_type='"+eventType+"'");}for(int i = 0 ; i < 100 ; i++){System.err.println("sql-->"+sql.toString());} //String sql = "SELECT ot_id, ot_item, ot_type, ot_level, ot_frequency, ot_desc, ot_attachment, ot_busid, ot_createtime, ot_createuser FROM t_opreate_task"; //run sql ResultSet resultSet = dbAccessor.execute(sql.toString()); List<OperateTask> list = new ArrayList<OperateTask>(); try { while(resultSet.next()){ String[] strs = new String[10] ; //ot_id strs[0]= String.valueOf(resultSet.getInt(1)); //ot_item strs[1] =resultSet.getString(2); //ot_type strs[2]=String.valueOf(resultSet.getInt(3)); //ot_level strs[3]=String.valueOf(resultSet.getInt(4)); //ot_frequency strs[4]=String.valueOf(resultSet.getInt(5)); xml.create(strs); } } catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}//out.println("The locale you selected is " + locale+"t_opreate_task"+id+"-->"+list);try {while(resultSet.next()){int id = resultSet.getInt(1);System.out.println("id-->"+id);}} catch (SQLException e1) {// TODO Auto-generated catch blocke1.printStackTrace();} //out.println(locale+"xiaoyu"+resultSet.toString());try {xml.output(out);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();} } public static void main(String[] args){ // Calendar calendar = Calendar.getInstance();// // int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK)-1;// // Calendar calFirstDayInThisWeek = (Calendar)calendar.clone();// // //例如,要从当前日历时间减去 5 天,可以通过调用以下方法做到这一点: add(Calendar.DAY_OF_MONTH, -5)。 // calFirstDayInThisWeek.add(Calendar.DATE, calendar.getActualMinimum(Calendar.DAY_OF_WEEK)-dayOfWeek);// // Calendar calLastDayInThisWeek = (Calendar)calendar.clone();// // calLastDayInThisWeek.add(Calendar.DATE,calendar.getActualMaximum(Calendar.DAY_OF_WEEK)-dayOfWeek);// // System.out.println("今天是本周的第"+dayOfWeek+"天"+"--本周星期一具日期为:"+calFirstDayInThisWeek.getTime()+"-->"+calLastDayInThisWeek.getTime());// // List<Map<String,Date>> tempList = getThisWeekStartDayAndEndDay("");// // Map<String,Date> tempMap = tempList.get(0); // // System.out.println("tempMap_1-->"+tempMap.get("calFirstDayInThisWeek")+"---"+tempMap.get("calLastDayInThisWeek")); //splitDateStr(""); //Map map = splitDateStr("07/11/2011"); // System.out.println("map_day-->"+map.get("day"));// // System.out.println("map_month-->"+map.get("month"));// // System.out.println("map_year-->"+map.get("year"));// // Map map = getThisWeekStartDayAndEndDay(2011,7,11);// // System.out.println("calFirstDayInThisWeek-->"+map.get("calFirstDayInThisWeek"));// // System.out.println("calLastDayInThisWeek-->"+map.get("calLastDayInThisWeek")); //System.out.println("Calendar.JULY"+Calendar.JULY); //getThisMonthStartDayAndEndDay(1,2,3); //Calendar calendar = Calendar.getInstance(); //int maximum = calendar.getMaximum(calendar.DAY_OF_MONTH); //System.out.println("maximum-->"+maximum); // Map<String ,Date> map = getThisMonthStartDayAndEndDay(2011,7,11);// Date calFirstDayInThisMonth = map.get("calFirstDayInThisMonth");// Date calLastDayInThisMonth = map.get("calLastDayInThisMonth");// //2011-04-13// DateFormat df = new SimpleDateFormat("yyyy-MM-dd");// String calFirstDayInThisMonth_str = df.format(calFirstDayInThisMonth);// String calLastDayInThisMonth_str = df.format(calLastDayInThisMonth);// System.out.println("-----------------------------------------");// System.out.println("calFirstDayInThisMonth_str-->"+calFirstDayInThisMonth_str);// System.out.println("calLastDayInThisMonth_str-->"+calLastDayInThisMonth_str);// System.out.println("-----------------------------------------"); // Map<String,String> map = splitDateStr("07/11/2011");// // String day = map.get("day");// // String month = map.get("month");// // String year = map.get("year");// // // System.out.println("今天是:"+year+"_"+month+"_"+day); String[] arrayStr =new String[]{"a","b","c","d","e","f","g","h","i"}; System.out.println("arrayStr.length-->"+arrayStr.length); int ladyQ = arrayStr.length << 4; System.out.println("length << 4-->"+ladyQ); } /** * 根据给定输入时间得到本周起始时间和本周结束时间 * key1:calFirstDayInThisWeek * key2:calLastDayInThisWeek */ public static Map<String,Date> getThisWeekStartDayAndEndDay(int year,int month,int day){ Calendar calendar = new GregorianCalendar(year, month-1, day); //Calendar calendar = Calendar.getInstance(); //Calendar cal = new GregorianCalendar(2005, Calendar.JANUARY, 30); int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK)-1; Calendar calFirstDayInThisWeek = (Calendar)calendar.clone(); //例如,要从当前日历时间减去 5 天,可以通过调用以下方法做到这一点: add(Calendar.DAY_OF_MONTH, -5)。 calFirstDayInThisWeek.add(Calendar.DATE, calendar.getActualMinimum(Calendar.DAY_OF_WEEK)-dayOfWeek); Calendar calLastDayInThisWeek = (Calendar)calendar.clone(); calLastDayInThisWeek.add(Calendar.DATE,calendar.getActualMaximum(Calendar.DAY_OF_WEEK)-dayOfWeek); System.out.println("今天是本周的第"+dayOfWeek+"天"+"--本周星期一具日期为:"+calFirstDayInThisWeek.getTime()+"-->"+calLastDayInThisWeek.getTime()); Map map = new HashMap(); map.put("calFirstDayInThisWeek", calFirstDayInThisWeek.getTime()); map.put("calLastDayInThisWeek", calLastDayInThisWeek.getTime()); return map; } /** * key_1:calFirstDayInThisMonth * key_2:calLastDayInThisMonth * @param year * @param month * @param day * @return */ public static Map<String,Date> getThisMonthStartDayAndEndDay(int year,int month,int day){ //Calendar calendar = Calendar.getInstance(); Calendar calendar = new GregorianCalendar(year, month-1, day); int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH); Calendar calFirstDayInThisMonth = (Calendar)calendar.clone(); //例如,要从当前日历时间减去 5 天,可以通过调用以下方法做到这一点: add(Calendar.DAY_OF_MONTH, -5)。 calFirstDayInThisMonth.add(Calendar.DATE, calendar.getActualMinimum(Calendar.DAY_OF_MONTH)-dayOfMonth); Calendar calLastDayInThisMonth = (Calendar)calendar.clone(); calLastDayInThisMonth.add(Calendar.DATE, calendar.getMaximum(Calendar.DAY_OF_MONTH)-dayOfMonth); Map<String,Date> map = new HashMap<String,Date>(); map.put("calFirstDayInThisMonth", calFirstDayInThisMonth.getTime()); map.put("calLastDayInThisMonth", calLastDayInThisMonth.getTime()); return map; } /** * 分割 dateSstr 喂 getThisWeekStartDayAndEndDay * @param dateStr * @return */ public static Map<String,String> splitDateStr(String dateStr){ //07/11/2011 String tempDateStr = "07/11/2011"; String[] strArr = dateStr.split("/"); String month = strArr[0]; String day = strArr[1]; String year = strArr[2]; if(strArr.length != 3){ return null; } Map map = new HashMap(); map.put("day", day); map.put("month", month); map.put("year", year); return map; } public static String dateToString(Date date,String ruler){ //String ruler_1 = "yyyy-MM-dd"; DateFormat df = new SimpleDateFormat(ruler); String date_Str = df.format(date); return date_Str; } }