calendarsheet.java
来自「一个用java编写的功能强大的OA系统」· Java 代码 · 共 182 行
JAVA
182 行
package com.redmoon.oa;import java.util.Calendar;public class CalendarSheet { String[] months = { "一 月", "二 月", "三 月", "四 月", "五 月", "六 月", "七 月", "八 月", "九 月", "十 月", "十一月", "十二月"}; int daysInMonth[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int displayMonth; int displayYear; int todayYear; int todayMonth; int todayDay; public CalendarSheet() { Calendar cal = Calendar.getInstance(); displayYear = cal.get(cal.YEAR); displayMonth = cal.get(cal.MONTH); todayYear = displayYear; todayMonth = displayMonth; todayDay = cal.get(cal.DAY_OF_MONTH); } public int getCurYear() { return todayYear; } public int getCurMonth() { return todayMonth; } public int getCurDay() { return todayDay; } public int getDays(int month, int year) { if (1 == month) return ( (0 == year % 4) && (0 != (year % 100))) || (0 == year % 400) ? 29 : 28; else return daysInMonth[month]; } public String newCalendar(int displayYear,int displayMonth) { this.displayYear = displayYear; this.displayMonth = displayMonth; Calendar newCal = Calendar.getInstance(); newCal.set(displayYear, displayMonth, 1); int day = -1; int startDayOfWeek = newCal.get(newCal.DAY_OF_WEEK ); if ( (todayYear == newCal.get(newCal.YEAR)) && (todayMonth == newCal.get(newCal.MONTH))) { day = todayDay; } int intDaysInMonth = getDays(newCal.get(newCal.MONTH), newCal.get(newCal.YEAR)); String daysGrid = makeDaysGrid(startDayOfWeek, day, intDaysInMonth, newCal); return daysGrid; } public String changeCld_Script(String virtualpath) { String str = ""; str = "<script language=javascript>\n"; str += "<!--\n"; str += "function changeCld(y,m)\n"; str += "{\n"; str += "document.location.href=\"" + virtualpath + "?displayMonth=\"+displayMonth.value+\"&displayYear=\"+displayYear.value\n"; str += "}\n"; str += "-->\n"; str += "</script>\n"; return str; } public String makeDaysGrid(int startDay, int day, int intDaysInMonth, Calendar newCal) { String daysGrid; int month = newCal.get(newCal.MONTH); int year = newCal.get(newCal.YEAR); boolean isThisYear = (year == todayYear); boolean isThisMonth = (day > -1); int forwardyear = displayYear+1; int backwordyear = displayYear-1; int forwardmonth = displayMonth +1; int backwordmonth = displayMonth -1; daysGrid = "<table align=center cellSpacing='0' borderColorDark='#ffffff' bgColor='#ebebeb' borderColorLight='#000000' border='1' width=80%>"; daysGrid += "<tr bgColor='#336699'><td align=center colspan=7 nowrap>"; daysGrid += "<font style='FONT-SIZE: 9pt' color='#ffffff'> 查看 <select style='FONT-SIZE: 9pt' onchange='changeCld()' id='displayYear' name='displayYear'>"; for (int k=-50; k<50; k++) { daysGrid += "<option value="+(displayYear+k)+">"+(displayYear+k)+"</option>"; } daysGrid += "</select>年"; daysGrid += "<script language=javascript>\n"; daysGrid += "<!--\n"; daysGrid += "displayYear.value=\""+displayYear+"\"\n"; daysGrid += "-->\n"; daysGrid += "</script>\n"; daysGrid += "<select style='FONT-SIZE: 9pt' onchange='changeCld()' name='displayMonth' id='displayMonth'>"; for (int k=1; k<=12; k++) { daysGrid += "<option value="+(k-1)+">"+k+"</option>"; } daysGrid += "</select>"; daysGrid += "<script language=javascript>\n"; daysGrid += "<!--\n"; daysGrid += "displayMonth.value=\""+displayMonth+"\"\n"; daysGrid += "-->\n"; daysGrid += "</script>\n"; daysGrid += "月</font> <font face='courier new, courier' size=2>"; daysGrid += "<a style='color:white' href='?displayYear="+displayYear+"&displayMonth="+backwordmonth+"')>«</a> "; daysGrid += "<b>"; if (isThisMonth) { daysGrid += "<font color=yellow>" + months[month] + "</font>"; } else { daysGrid += "<font color=white>" + months[month] + "</font>"; } daysGrid += "</b>"; daysGrid += " <a style='color:white' href='?displayMonth="+forwardmonth+"&displayYear="+displayYear+"')>»</a>"; daysGrid += " "; daysGrid += "<a style='color:white' href='?displayMonth="+displayMonth+"&displayYear="+backwordyear+"')>«</a> "; daysGrid += "<b>"; if (isThisYear) { daysGrid += "<font color=yellow>" +year + " 年</font>"; } else { daysGrid += "<font color=white>" +year + " 年</font>"; } daysGrid += "</b>"; daysGrid += " <a style='color:white' href='?displayMonth="+displayMonth+"&displayYear="+forwardyear+"')>»</a></td></tr>"; daysGrid += "<tr bgColor=#bebebe><td align=center><font color=red>日</font></td><td align=center>一</td><td align=center>二</td>"; daysGrid += "<td align=center>三</td><td align=center>四</td><td align=center>五</td><td align=center><font color=red>六</font></td></tr>"; int dayOfMonthOfFirstSunday = 7-startDay+2; int count = 0; int dayOfMonth = 0; for (int intWeek = 0; intWeek < 6; intWeek++) { daysGrid += "<tr height=40>"; for (int intDay = 0; intDay < 7; intDay++) { dayOfMonth = (intWeek * 7) + intDay + dayOfMonthOfFirstSunday - 7; if (dayOfMonth <= 0) { daysGrid += "<td> </td>"; } else if (dayOfMonth <= intDaysInMonth) { count++; String color = "black"; if (intDay==0 || intDay==6) color = "red"; if (day > 0 && day == dayOfMonth) color = "blue"; daysGrid += "<td align=center><a href=\"#\""; daysGrid += " style='font-size:15pt;FONT-FAMILY:Arial;color:" + color + "'><b>"; String dayString = dayOfMonth + "</b></a> "; daysGrid += dayString + "</td>"; } } int dayspan = dayOfMonth - count; if (dayOfMonth < intDaysInMonth) daysGrid += "</tr>"; else { if (dayspan < 7 && dayspan > 0) { for (int k = 0; k < dayspan; k++) { daysGrid += "<td> </td>"; } daysGrid += "</tr>"; } } } return daysGrid + "</table>"; }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?