首页 > 编程 > Java > 正文

java编写全年考勤日历

2019-11-26 09:29:54
字体:
来源:转载
供稿:网友

本文实例为大家分享了java编写全年考勤日历的具体代码,供大家参考,具体内容如下

JAVA代码:

package com.wp.action; import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Calendar;import java.util.HashMap; public class CalendarAction extends MainAction {  private static final long serialVersionUID = 1L;  private int maxCols; private String html; private String clickDate;  public String getClickDate() { return clickDate; }  public void setClickDate(String clickDate) { this.clickDate = clickDate; }  public String init() { Calendar cal = Calendar.getInstance(); int month = cal.get(Calendar.MONTH) + 1; initMaxCols(); html = createTbl();  return SUCCESS; }  private void initMaxCols() { // 每行开头灰色的格数 int headDisabledDays; // 当月的天数 int oneMonthDays; Calendar cal = Calendar.getInstance(); cal.set(Calendar.DAY_OF_MONTH, 1);  for (int i = 0; i < 12; i++) {   if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {  // 周日空六格  headDisabledDays = 6;  } else {  headDisabledDays = cal.get(Calendar.DAY_OF_WEEK)   - Calendar.MONDAY;  }   oneMonthDays = cal.getActualMaximum(Calendar.DAY_OF_MONTH);  if (headDisabledDays + oneMonthDays > maxCols) {  maxCols = headDisabledDays + oneMonthDays;  }  cal.add(Calendar.MONTH, 1); }  }  private String createTbl() { StringBuffer html = new StringBuffer(); String[] weekdays = { "一", "二", "三", "四", "五", "六", "日" }; SimpleDateFormat formatTd = new SimpleDateFormat("yyyyMMdd"); SimpleDateFormat formatHeader = new SimpleDateFormat("yyyy年MM月"); SimpleDateFormat formatTitle = new SimpleDateFormat("yyyy年MM月dd日"); HashMap<String, String> map = getCalendarDetail();  // 每行开头灰色的格数 int headDisabledDays;  // html.append("<table id='calTbl'>/r/n"); html.append("<tr>/r/n"); html.append("<th></th>/r/n"); for (int col = 0; col < maxCols; col++) {  html.append("<th>");  html.append(weekdays[col % weekdays.length]);  html.append("</th>/r/n"); } html.append("</tr>/r/n"); Calendar cal = Calendar.getInstance(); int month = cal.get(Calendar.MONTH); for (int months = 0; months < 12; months++) {  html.append("<tr>/r/n");  String s;  s = formatHeader.format(cal.getTime());  html.append("<td class='rowHeader'>" + s + "</td>/r/n");    cal.set(Calendar.DAY_OF_MONTH, 1);  if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {  // 周日空六格  headDisabledDays = 6;  } else {  headDisabledDays = cal.get(Calendar.DAY_OF_WEEK)   - Calendar.MONDAY;  }  cal.add(Calendar.DAY_OF_MONTH, -headDisabledDays);   for (int col = 0; col < maxCols; col++) {   html.append("<td id='");   String date = formatTd.format(cal.getTime());  html.append(date + "' ");  // if (headDisabledDays-- > 0) {  // html.append("class='disabledTd'");  // }else  if (month != cal.get(Calendar.MONTH)) {   html.append("class='disabledTd'");    } else if (map.containsKey(formatTd.format(cal.getTime()))) {   int type = Integer.parseInt(map.get(formatTd.format(cal    .getTime())));   if(type == 1){   //html.append("class='holidayTd'");   }else if(type == 2){   html.append("class='holidayTd'");   }  } else if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY   || cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {   html.append("class='weekendTd'");  } else {   html.append("class='generalTd'");  }  html.append(" title='" + formatTitle.format(cal.getTime())   + "'");  html.append(">");   html.append(cal.get(Calendar.DAY_OF_MONTH));  html.append("</td>/r/n");  cal.add(Calendar.DAY_OF_MONTH, 1);   }   html.append("</tr>/r/n");  if (month == cal.get(Calendar.MONTH)) {  cal.add(Calendar.MONTH, 1);  }  month = cal.get(Calendar.MONTH); } // html.append("</table>/r/n"); return html.toString(); }  public String getHtml() { return html; }  public void setHtml(String html) { this.html = html; }  private HashMap<String, String> getCalendarDetail() { HashMap<String, String> map; map = new HashMap<String, String>(); map.put("20150404", "2"); map.put("20150405", "2"); map.put("20150406", "2"); map.put("20150501", "2"); map.put("20150502", "2"); map.put("20150503", "2"); map.put("20150622", "2"); map.put("20151001", "2"); map.put("20151002", "2"); map.put("20151003", "2");  return map; } public String dateCellClick(){  return SUCCESS; }}

action配置:

<action name="calendar" class="com.wp.action.CalendarAction" method="init">   <result name="success" type="json"></result></action>

HTML代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><% String path = request.getContextPath(); String basePath = request.getScheme() + "://"  + request.getServerName() + ":" + request.getServerPort()  + path;%><%@taglib prefix="s" uri="/struts-tags"%><html> <STYLE type="text/css">  .disabledTd{  background-color:gray;  }  .weekendTd{  background-color:yellow;  }  .holidayTd{  background-color:green;  }  .generalTd{  background-color:white;  }  #calTbl{  font-family: verdana,arial,sans-serif;  font-size:13px;  color:#333333;  border-width: 1px;  border-color: #a9c6c9;  border-collapse: collapse;  }  #calTbl th{  border-width: 1px;  padding: 4px;  border-style: solid;  border-color: #a9c6c9;  background-color:olive;  }  #calTbl td {  border-width: 1px;  padding: 4px;  border-style: solid;  border-color: #a9c6c9;  }  .rowHeader{  background-color:olive;  } </STYLE>  <head>  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Login page</title> <link rel="stylesheet" type="text/css" media="screen"  href="<%=basePath%>/html/styles/styles.css" rel="external nofollow" /> <script src="<%=basePath%>/html/scripts/common.js"  type="text/javascript"></script> <script src="<%=basePath%>/html/scripts/jquery.js"  type="text/javascript"></script> <script src="<%=basePath%>/html/scripts/jquery.json-2.2.min.js"  type="text/javascript"></script> <script src="<%=basePath%>/html/scripts/jquery.ui.custom.js"  type="text/javascript"></script> <script src="<%=basePath%>/html/scripts/script.js"  type="text/javascript"></script>  <script type="text/javascript">  $(document).ready(function(){  var checkType = 0;  $.post('calendar',{},function(data,status)  {   if(data != null && data.html != null && data.html != ""){   $("#calTbl").html( data.html);   $("#calTbl td").click(tdClick);   $("#checkType input").click(typeCheck);   }  }).error(function(){     });   var tdClick = function(){     if(this.className == 'rowHeader' || this.className == 'disabledTd'){   return;   }   if(checkType != null && checkType != "" && checkType != 0){   if(checkType == 1){       this.style.backgroundColor="white";   }else if(checkType == 2){        this.style.backgroundColor="yellow";   }else if(checkType == 3){        this.style.backgroundColor="green";   }   }  };  var typeCheck = function(){   checkType = this.value;  };      });   </script> </head> <body> <div id="calendar">  <table id="calTbl"></table>   </div> <div>  <table id="checkType">  <tr>   <td style="background-color: white;"> <input type="radio" name="type" value="1"> </td>   <td style="background-color: yellow;"><input type="radio" name="type" value="2"></td>   <td style="background-color: green;"> <input type="radio" name="type" value="3"></td>  </tr>  </table> </div>  </body></html>

效果如下

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表