java编写全年考勤日历

本文实例为大家分享了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>

效果如下

以上是 java编写全年考勤日历 的全部内容, 来源链接: utcz.com/z/312909.html

回到顶部