java編寫全年考勤日歷
更新時間:2018年11月29日 12:04:04 作者:始于千里之外
這篇文章主要為大家詳細介紹了java編寫全年考勤日歷,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了java編寫全年考勤日歷的具體代碼,供大家參考,具體內(nèi)容如下
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() {
// 每行開頭灰色的格數(shù)
int headDisabledDays;
// 當月的天數(shù)
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();
// 每行開頭灰色的格數(shù)
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>
效果如下

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- 日歷顯示讀出輸入的年月的java代碼
- Java中的Calendar日歷API用法完全解析
- java實現(xiàn)日歷(某年的日歷,某月的日歷)用戶完全自定義
- 學(xué)習(xí)Java中的日期和時間處理及Java日歷小程序的編寫
- Java實現(xiàn)簡單日歷小程序 Java圖形界面小日歷開發(fā)
- java制作android 日歷代碼分享
- java萬年歷,獲取該年月日歷表
- 使用JavaBean創(chuàng)建您的網(wǎng)上日歷本(2)
- Java實現(xiàn)按年月打印日歷功能【基于Calendar】
- 使用JavaBean創(chuàng)建您的網(wǎng)上日歷本(1)
- Java實現(xiàn)的日歷功能完整示例
相關(guān)文章
Java裝飾器設(shè)計模式_動力節(jié)點Java學(xué)院整理
這篇文章主要介紹了Java裝飾器設(shè)計模式的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-05-05
使用Springboot封裝一個自適配的數(shù)據(jù)單位轉(zhuǎn)換工具類
我們在接收前臺傳輸?shù)臄?shù)據(jù)時,往往SpringBoot使用內(nèi)置的數(shù)據(jù)類型轉(zhuǎn)換器把我們提交的數(shù)據(jù)自動封裝成對象等類型,下面這篇文章主要給大家介紹了關(guān)于使用Springboot封裝一個自適配的數(shù)據(jù)單位轉(zhuǎn)換工具類的相關(guān)資料,需要的朋友可以參考下2023-03-03
Java 靜態(tài)數(shù)據(jù)初始化的示例代碼
這篇文章主要介紹了Java 靜態(tài)數(shù)據(jù)初始化的示例代碼,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下2020-09-09
Java使用嵌套循環(huán)模擬ATM機取款業(yè)務(wù)操作示例
這篇文章主要介紹了Java使用嵌套循環(huán)模擬ATM機取款業(yè)務(wù)操作,結(jié)合實例形式分析了Java模擬ATM機取款業(yè)務(wù)操作的相關(guān)流程控制、數(shù)值判斷等操作技巧,需要的朋友可以參考下2019-11-11

