效果展示:
/**
* 描述:根据天、小时、实现三级联动<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>
很高兴与你们分享:
希望对需要实现根据天、小时、实现三级联动的朋友们有帮助!
谢谢!