当前时间所在周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 block
e1.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 block
e.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 block
e1.printStackTrace();
}

//out.println(locale+"xiaoyu"+resultSet.toString());

try {
xml.output(out);
} catch (Exception e) {
// TODO Auto-generated catch block
e.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;
}



}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值