工作总结Java、Ajax 根据天、时、分实现三级联动

效果展示:



/**
 * 描述:根据天、小时、实现三级联动<br>
 * 作者:liqijing <br>
 * 修改日期:2015-3-29下午11:34:01 <br>
 * E-mail: lijinginsistsmile@163.com <br>
 */
public class DateTime {
	
	public static void main(String[] args) {
		
		String arr [] = getTimeMinute("今天",15);
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}
	}
	
	/**
	 * 方法名称: getOneDayTime<br>
	 * 描述:获取今天还有多少小时 例如:22,23,24
	 * 作者: liqijing
	 * 修改日期:2015-3-29下午11:32:42
	 * @param day
	 * @return
	 */
	public static String[] getOneDayTime(String day) {
		int currentHour = getCurrentHour();
		String arryHours = "";
		int nextDayTime = 0;
		if("今天".equals(day)){
			for(int i=23 ; currentHour <= i ;){
	 			String ch = currentHour+"";
	 			if(ch.length() == 1){
	 				 ch = "0"+ ch ;
	 				arryHours = arryHours + ch +",";
	 			}else {
	 				arryHours = arryHours + currentHour+",";
	 			}
	 			currentHour ++ ;
			}
		} else {
			for(int i=23 ; nextDayTime <= i ;){
				String ch = nextDayTime+"";
	 			if(ch.length() == 1){
	 				 ch = "0"+ ch ;
	 				arryHours = arryHours + ch +",";
	 			}else {
	 				arryHours = arryHours + nextDayTime+",";
	 			}
	 			nextDayTime ++ ;
			}
		}
		return  arryHours.split(",");
	}
	
	
	
	/**
	 * 方法名称: getTimeMinute<br>
	 * 描述:获取每小时还要多少分钟五分制 例如:05,10,15,20
	 * 作者: liqijing
	 * 修改日期:2015-3-29下午11:32:51
	 * @param day
	 * @param time
	 * @return
	 */
	public static String[] getTimeMinute(String day,int time){
		int currentHour = getCurrentHour();
		String currentMinutes = "" ;
		Calendar calendar = Calendar.getInstance();
	    calendar.setTime(new Date());
	    int currentMinute = calendar.get(Calendar.MINUTE) ;
	    int nextTimeMinute = 0;
	    if("今天".equals(day)){
	    	if(currentHour == time){
	    		for(int i=60 ;currentMinute <= i ; ){
		 			if((currentMinute%5)==0){
		 				String ch = currentMinute+"";
		 				if(ch.length()==1){
		 					ch = "0"+ch ;
		 					currentMinutes = currentMinutes + ch+",";
		 				} else {
		 					currentMinutes = currentMinutes + currentMinute+""+",";
		 				}
		 			}
		 			currentMinute ++ ;
		 		}
	    	} else {
	    		currentMinute = 0;
	    		for(int i=60 ;currentMinute <= i ; ){
		 			if((currentMinute%5)==0){
		 				String ch = currentMinute+"";
		 				if(ch.length()==1){
		 					ch = "0"+ch ;
		 					currentMinutes = currentMinutes + ch+",";
		 				} else {
		 					currentMinutes = currentMinutes + currentMinute+""+",";
		 				}
		 				
		 			}
		 			currentMinute ++ ;
		 		}
	    	}
	    } else {
	    	for(int i=60 ;nextTimeMinute <= i ; ){
	 			if((nextTimeMinute%5)==0){
	 				String ch = nextTimeMinute+"";
	 				if(ch.length() == 1){
	 					ch = "0"+ch ;
	 					currentMinutes = currentMinutes + ch+",";
	 				}else {
	 					currentMinutes = currentMinutes + nextTimeMinute+""+",";
	 				}
	 				
	 			}
	 			nextTimeMinute ++ ;
	 		}
	    }
 		return currentMinutes.split(",") ;
	}
	
	
	/**
	 * 方法名称: getCurrentHour<br>
	 * 描述:获取当前小时 HH24制
	 * 作者: liqijing
	 * 修改日期:2015-3-29下午11:35:24
	 * @return
	 */
	@SuppressWarnings("deprecation")
	public static int getCurrentHour(){
		Date date = new Date();
		int currentHour = date.getHours();
		return currentHour  ;
	}
	
}


 Struts2 实现 Action 部分:

/**
 * 描述:Action部分 根据天、小时、实现三级联动<br>
 * 作者:liqijing <br>
 * 修改日期:2015-3-29下午11:34:01 <br>
 * E-mail: lijinginsistsmile@163.com <br>
 */
public class SysUserAction extends ActionSupport implements SessionAware,RequestAware {
	private static final long serialVersionUID = 1L;
	private SysUser sysuser;
	private Map<String, Object> request;
	private String code;
	 
	private String day ;
	private String hour ;
	private String minute ;

	
	/**
	 * 方法名称: initSysUser<br>
	 * 描述:初始化 例如:22,23,24
	 * 作者: liqijing
	 * 修改日期:2015-3-29下午11:32:42
	 * @param day
	 * @return
	 */
	public String initSysUser(){
		HttpServletRequest request = ServletActionContext.getRequest();
		String project = request.getContextPath();
	    int currentHour = DateTime.getCurrentHour();
		String time [] = DateTime.getOneDayTime("今天");
		String minute [] = DateTime.getTimeMinute("今天", currentHour);
		this.request.put("time", time);
		this.request.put("minute", minute);
		this.request.put("currentHour", currentHour) ;
		this.request.put("project", project);
		return "init" ;
	}
	
	
	/**
	 * 方法名称: gethour<br>
	 * 描述:Ajax 请求选择小时二级联动
	 * 作者: liqijing
	 * 修改日期:2015-3-29下午11:32:42
	 * @param day
	 * @return
	 */
	public void gethour() throws IOException {
		System.out.println("进来了........");
		HttpServletResponse response = ServletActionContext.getResponse();
		HttpServletRequest request = ServletActionContext.getRequest();
		PrintWriter out = response.getWriter();
		String hour [] = DateTime.getOneDayTime(this.day);
		String minute [] = null ;
		if(this.hour.substring(0) == "0"){
			minute = DateTime.getTimeMinute(this.day, Integer.parseInt(this.hour.substring(1)));
		}else {
			minute = DateTime.getTimeMinute(this.day, Integer.parseInt(this.hour));
		}
		request.setAttribute("hour", hour);
		request.setAttribute("minute", minute);
		
		if (hour.length > 0 && minute.length > 0) {
			String arr = "" ;
			for(int i=0;i<minute.length ;i++){
				arr = arr +minute[i]+"," ;
			}
			arr.substring(0,arr.length()-1);
			System.out.println(arr);
			out.print(arr);
		} else {
			out.print("false");
		}
		out.close();
	}
	
	
	/**
	 * 方法名称: getDayHour<br>
	 * 描述:Ajax 请求选择天三级联动
	 * 作者: liqijing
	 * 修改日期:2015-3-29下午11:32:42
	 * @param day
	 * @return
	 */
	public void getDayHour() throws IOException {
		System.out.println("进来了........");
		HttpServletResponse response = ServletActionContext.getResponse();
		PrintWriter out = response.getWriter();
		String hour [] = DateTime.getOneDayTime(this.day);
		String minute [] = null ;
		if("今天".equals(this.day)){
		    minute  = DateTime.getTimeMinute(this.day, DateTime.getCurrentHour());
		} else {
			if(this.hour.substring(0) == "0"){
				minute  = DateTime.getTimeMinute(this.day, Integer.parseInt(this.hour.substring(1)));
			}else{
				minute  = DateTime.getTimeMinute(this.day, Integer.parseInt(this.hour));
			}
		}
		if (hour.length > 0 && minute.length > 0) {
			String arrminuteArrhour = "";
			String arrminute = "" ;
			String arrhour = "?," ;
			for(int i=0;i<minute.length ;i++){
				arrminute = arrminute +minute[i]+"," ;
			}
			for(int i=0;i<hour.length ;i++){
				arrhour +=  hour[i]+"," ;
			}
			arrminuteArrhour = arrminute+ arrhour ; 
			System.out.println(arrminuteArrhour);
			out.print(arrminuteArrhour);
		} else {
			out.print("false");
		}
		out.close();
	}
	
}


HTML部分:

<div style="text-align: left;"><span style="font-family: Arial, Helvetica, sans-serif;"><select name="day"  id="day"  οnchange="queryDay()"></span></div>			<option value="今天">今天</option>
<div style="text-align: left;"><span style="font-family: Arial, Helvetica, sans-serif;">		<select name="hour"  id="hour"  οnchange="queryTime()"></span></div>			<option value="明天">明天</option>
		</select> 
		
			
<div style="text-align: left;"><span style="font-family: Arial, Helvetica, sans-serif;">		  	 <option value="${it }">${it } </option></span></div>		  <s:iterator var="it" value="#request.time">
		  </s:iterator>
			 
		</select> 时
<div style="text-align: left;"><span style="font-family: Arial, Helvetica, sans-serif;">		<select name="minute"  id="minute"></span></div>		<input  type="hidden" id="project" value="${request.project }">
			<s:iterator var="min" value="#request.minute">
<div style="text-align: left;"><span style="font-family: Arial, Helvetica, sans-serif;">		</select> 分</span></div>		         <option value="${min }">${min }</option>
<div style="text-align: left;"><span style="font-family: Arial, Helvetica, sans-serif;">		  </s:iterator></span></div>



JavaScript部分:

<script type="text/javascript">
 	function queryTime(){
 		 var hour = $("#hour").val();
 		 var day = $("#day").val();
 		 var project = $("#project").val();
 		 if(true){
   	 	$.post(project+"/loginAction!gethour",{"day":day,"hour":hour},
   	 	   function(data){
   	 		var v = data ;
   	 		if(data =! ""){
   	 		   var arr = v.split(',');
   	 		   var selOpt = $("#minute  option");
			   selOpt.remove();
   	 		   for(var i in arr){
   	 			 if(arr[i] != ""){
   	 				$("#minute").append("<option value='"+arr[i]+"'>"+arr[i]+"</option>");
   	 			  }
   	 			}
   	 		}else{
   	 			alert("失败");
   	 		}
   	 	});
    }
 	}

 	
function queryDay(){
 		 var hour = $("#hour").val();
 		 var day = $("#day").val();
 		 var project = $("#project").val();
 		 if(true){
   	 	$.post(project+"/loginAction!getDayHour",{"day":day,"hour":hour},
   	 	   function(data){
   	 		var v = data ;
   	 		if(data =! ""){
   	 			var arr1 = v.substring(v.indexOf('?'));
   	 			// str.substring(str.indexOf('>')+1,str.lastIndexOf('<'))
   	 			var arr2 = v.substring(0,v.indexOf('?')) ;
   	 		    var arrMinute = arr2.split(',');
   	 		    var arrHour = arr1.split(',');
   	 		    var selOptMinute = $("#minute  option");
   	 		    selOptMinute.remove();
			    var selOptHour = $("#hour  option");
			    selOptHour.remove();
   	 		   for(var i in arrMinute){
   	 			 if(arrMinute[i] != ""){
   	 				$("#minute").append("<option value='"+arrMinute[i]+"'>"+arrMinute[i]+"</option>");
   	 			  }
   	 			}
   	 		   for(var i in arrHour){
   	 			  if(arrHour[i] != "" && arrHour[i] != "?"){
    	 				$("#hour").append("<option value='"+arrHour[i]+"'>"+arrHour[i]+"</option>");
    	 		  }
   	 		   }
   	 		   
   	 		}else{
   	 			alert("失败");
   	 		}
   	 	});
    }
 	}
</script>



很高兴与你们分享:
   希望对需要实现根据天、小时、实现三级联动的朋友们有帮助!
   谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值