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;
}
}
分享到:
相关推荐
查询所传过来的日期所在的自然周,月的起始和截止的日期
下面将详细解释如何通过JS实现这个功能,并且考虑到周的起始日期可以自定义,这里设定为礼拜四开始,礼拜五结束,允许跨年和跨月。 首先,我们来看`getWeekStartDate`函数,它的目的是获取指定日期所在周的起始日期...
标签“JS特效-日期时间”表明这个功能是通过JavaScript编程语言来完成的,结合了日期和时间的处理。JavaScript是一种广泛使用的客户端脚本语言,它可以在用户的浏览器上运行,为网页添加动态效果和交互性。对于日期...
Type 日期类型:(“-”为前一期间,无符号为当期,“+”为后一期间),Y 年,Q 季,M 月,W 周,D 日 例:前一年:-Y,当年:Y,+Y:下一年 datetype : ‘S’返回开始时间,'E'返回结束时间 datetime: 按哪个时间进行...
在计算周的起始日期时,需要了解 getFirstDayOfWeek() 方法,该方法用于获取给定日期所在周的第一天。该方法首先将日期设置到 Calendar 对象中,然后使用 set() 方法将日期设置为星期一,然后使用 getTime() 方法...
这里的逻辑是将当前月份映射到最近的季度起始月(即1月、4月、7月或10月),然后基于此计算季度的起始和结束日期。 ### 计算本年的起始与结束日期 本年的起始和结束日期是最直观的,分别对应于当年的1月1日和12月...
"带有开始时间和结束时间的日期选择器"是一个DEMO项目,它专为Android Studio设计,允许用户同时选择一个起始日期和结束日期。这种组件在日程安排、预订系统或任何需要设定时间范围的应用中非常有用。 该DEMO的特点...
这篇内容主要讲解了如何利用C#获取每个年、月、周的起始日期和结束日期。这些功能在数据分析、报告生成或者日程管理等场景中非常实用。下面我们将深入探讨这个话题。 首先,我们需要一个枚举类型来表示不同的时间段...
获取当天、昨天、上周、当月、上个月 当年等起始和结束时间
Git地址 : ... 时间段筛选器 1 可自定义起始时间和终止时间 2 支持一键选择当天 昨天 本周 本月时间段 3 自定义颜色 4 快速重置时间
运行结果显示出2017年1月23日是那一周的开始日期,而2017年1月29日是结束日期。 此外,文章还提到了一些在线的日期和时间工具,这些工具可以帮助开发者更方便地进行日期和时间的计算和转换。 了解这个函数后,...
例如,“当前日期”函数可以获取系统当前的日期,而“当前时间”函数则用于获取当前的时间。 要获取本周的开始和结束日期,我们需要考虑一周的第一天是哪一天。在中国,通常将周日视为一周的开始,而在某些国际标准...
为了更好地展示整个过程,下面给出一个综合示例,该示例同时显示了当前日期、上一周的起始日期以及上一周的结束日期: ```sql SELECT GETDATE() AS xianzai, DATEADD(Day, 1 - DATEPART(Weekday, CONVERT(varchar...
最近在制作一个报表,里面需要计算某日是属于当年的多少周,并且要显示这周的起始日期和截止日期,本以为网上会有很多,可是找来找去,要么是要用WEEKNUM()这函数,需要加分析工具库,通用性不是很强,要么就不是...
3.周选择最大选择12个周,选择起始周后,在选择结束周时,会在日历上默认开始周+最大周数后所在周的最后一天 4.周选择器时,日历从星期一开始,星期天结束;每周的第一天是周一;每年的最后一天(即12月31号)所在的...
日期对应自然月起始日期(YYYY-MM-DD格式)2020/12/1 日期对应自然月起始日期(时间戳格式)1606752000 日期对应自然月底日期(YYYYMMDD格式)20201231 日期对应自然月底日期(YYYY-MM-DD格式)2020/12/31 日期对应自然月底...
支持开始时间和结束时间联动,从VUE和element UI框架中拆分出来的。可以作为一个插件,单独引入到你需要的单个页面中。。UI界面很美观。功能强大。
接着,通过`getDay()`方法获取当前日期是一周中的第几天,`getDate()`获取当前日,`getMonth()`获取当前月,以及`getYear()`获取当前年份。由于JavaScript的`getYear()`返回的是两位数的年份,因此我们需要将小于...
首先,获取本周开始日期和结束日期的基本思路是基于当前日期(或指定日期)确定周的起始日(通常是周一或周日),然后计算出一周的结束日期。在PHP中,我们可以利用内置的`date()`和`strtotime()`函数来实现这一目标...
这条SQL语句主要是用来显示某个时间段内的所有日期,有利于显示日期相关数据