⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gscalendar.java

📁 一个日本流行的,功能较全的开源Web办公管理(Groupware)系统。
💻 JAVA
字号:
package jp.co.sjts.gsession.tools;

import java.io.PrintWriter;
import java.io.File;

/**
 * <p>昞帵僇儗儞僟乕嶌惉僋儔僗
 *
 * @author   Junichi K   &lt;kaneuchi@sjts.co.jp$gt;
 */
public class GSCalendar {

	public static final int JPN = 1;
	public static final int ENG = 2;
	public static final int SUNDAY = 1;
	public static final int SATURDAY = 7;

	private int font = 0;
	private int width = 100;
	private int border = 0;
	private int Cellspacing = 0;
	private int Cellpadding = 0;
	private IHoliday holiday;
	private String todaybgcolor = "#ffd700";
	private boolean caption = true;
	private int lang = ENG;
	private boolean shortenable = true;

	public GSCalendar() {
	}

	public void setFont(int font) {
		this.font = font;
	}

	public void setWidth(int width) {
		this.width = width;
	}

	public void setBorder(int border) {
		this.border = border;
	}

	public void setCellspacing(int Cellspacing) {
		this.Cellspacing = Cellspacing;
	}

	public void setCellpadding(int Cellpadding) {
		this.Cellpadding = Cellpadding;
	}

	public void setTodayBGColor(String todaybgcolor) {
		this.todaybgcolor = todaybgcolor;
	}

	public void setCaption(boolean caption) {
		this.caption = caption;
	}

	public void setLang(int lang) {
		this.lang = lang;
	}

	public void setShort(boolean shortenable) {
		this.shortenable = shortenable;
	}

	public void write(PrintWriter pw,GSDate date,IHoliday holiday) throws GSException {

		GSDate todayDate = new GSDate();
		GSDate thisMonth = new GSDate();
		thisMonth.setYMD(date.getYear(),date.getMonth(),1);

		String tableHead = "<TABLE WIDTH=\""+Integer.toString(width)
			                +"%\" BORDER=\""+Integer.toString(border)
			                +"\" CELLSPACING=\""+Integer.toString(Cellspacing)
			                +"\" CELLPADDING=\""+Integer.toString(Cellpadding)
			                +"\">";
		pw.println(tableHead);

		if(caption){
			String month="";
			if(lang == ENG && !shortenable) {
				switch(thisMonth.getMonth()){
				case 1: month = "January";break;
				case 2: month = "February";break;
				case 3: month = "March";break;
				case 4: month = "April";break;
				case 5: month = "May";break;
				case 6: month = "June";break;
				case 7: month = "July";break;
				case 8: month = "August";break;
				case 9: month = "September";break;
				case 10: month = "October";break;
				case 11: month = "November";break;
				case 12: month = "December";break;
				}
			} else if(lang == ENG && shortenable) {
				switch(thisMonth.getMonth()){
				case 1: month = "Jan";break;
				case 2: month = "Feb";break;
				case 3: month = "Mar";break;
				case 4: month = "Apr";break;
				case 5: month = "May";break;
				case 6: month = "Jun";break;
				case 7: month = "Jul";break;
				case 8: month = "Aug";break;
				case 9: month = "Sep";break;
				case 10: month = "Oct";break;
				case 11: month = "Nov";break;
				case 12: month = "Dec";break;
				}
			} else if(lang == JPN && !shortenable) {
				switch(thisMonth.getMonth()){
				case 1: month = "侾寧";break;
				case 2: month = "俀寧";break;
				case 3: month = "俁寧";break;
				case 4: month = "係寧";break;
				case 5: month = "俆寧";break;
				case 6: month = "俇寧";break;
				case 7: month = "俈寧";break;
				case 8: month = "俉寧";break;
				case 9: month = "俋寧";break;
				case 10: month = "侾侽寧";break;
				case 11: month = "侾侾寧";break;
				case 12: month = "侾俀寧";break;
				}
			} else if(lang == JPN && shortenable) {
				month = ""+date.getMonth();
			}
			pw.println("<TR><TD COLSPAN=\"7\" ALIGN=\"center\"><B>"+month+"</B></TD></TR>");
		}

		String[] FontTag = new String[7];
		FontTag[0] = "<FONT"+((font != 0)?" SIZE=\""+Integer.toString(font)+"\"":"")+" COLOR=\"ff0000\">";
		FontTag[1] = ((font != 0)?"<FONT SIZE=\""+Integer.toString(font)+"\">":null);
		FontTag[2] = ((font != 0)?"<FONT SIZE=\""+Integer.toString(font)+"\">":null);
		FontTag[3] = ((font != 0)?"<FONT SIZE=\""+Integer.toString(font)+"\">":null);
		FontTag[4] = ((font != 0)?"<FONT SIZE=\""+Integer.toString(font)+"\">":null);
		FontTag[5] = ((font != 0)?"<FONT SIZE=\""+Integer.toString(font)+"\">":null);
		FontTag[6] = "<FONT"+((font != 0)?" SIZE=\""+Integer.toString(font)+"\"":"")+" COLOR=\"0000ff\">";

		pw.println("<TR BGCOLOR=\"#cccccc\">");
		if(lang == JPN) {
			pw.println("  <TD ALIGN=\"center\" WIDTH=\"14%\">"+FontTag[0]+"擔</FONT></TD>");
			pw.println("  <TD ALIGN=\"center\" WIDTH=\"14%\">"+((font != 0)?FontTag[1]+"寧</FONT>":"寧")+"</TD>");
			pw.println("  <TD ALIGN=\"center\" WIDTH=\"14%\">"+((font != 0)?FontTag[2]+"壩</FONT>":"壩")+"</TD>");
			pw.println("  <TD ALIGN=\"center\" WIDTH=\"14%\">"+((font != 0)?FontTag[3]+"悈</FONT>":"悈")+"</TD>");
			pw.println("  <TD ALIGN=\"center\" WIDTH=\"14%\">"+((font != 0)?FontTag[4]+"栘</FONT>":"栘")+"</TD>");
			pw.println("  <TD ALIGN=\"center\" WIDTH=\"14%\">"+((font != 0)?FontTag[5]+"嬥</FONT>":"嬥")+"</TD>");
			pw.println("  <TD ALIGN=\"center\" WIDTH=\"14%\">"+FontTag[6]+"搚</FONT></TD>");
		} else if((lang == ENG) && (shortenable)) {
			pw.println("  <TD ALIGN=\"center\" WIDTH=\"14%\">"+FontTag[0]+"S</FONT></TD>");
			pw.println("  <TD ALIGN=\"center\" WIDTH=\"14%\">"+((font != 0)?FontTag[1]+"M</FONT>":"M")+"</TD>");
			pw.println("  <TD ALIGN=\"center\" WIDTH=\"14%\">"+((font != 0)?FontTag[2]+"T</FONT>":"T")+"</TD>");
			pw.println("  <TD ALIGN=\"center\" WIDTH=\"14%\">"+((font != 0)?FontTag[3]+"W</FONT>":"W")+"</TD>");
			pw.println("  <TD ALIGN=\"center\" WIDTH=\"14%\">"+((font != 0)?FontTag[4]+"T</FONT>":"T")+"</TD>");
			pw.println("  <TD ALIGN=\"center\" WIDTH=\"14%\">"+((font != 0)?FontTag[5]+"F</FONT>":"F")+"</TD>");
			pw.println("  <TD ALIGN=\"center\" WIDTH=\"14%\">"+FontTag[6]+"S</FONT></TD>");
		} else {
			pw.println("  <TD ALIGN=\"center\" WIDTH=\"14%\">"+FontTag[0]+"SUN</FONT></TD>");
			pw.println("  <TD ALIGN=\"center\" WIDTH=\"14%\">"+((font != 0)?FontTag[1]+"MON</FONT>":"MON")+"</TD>");
			pw.println("  <TD ALIGN=\"center\" WIDTH=\"14%\">"+((font != 0)?FontTag[2]+"TUE</FONT>":"TUE")+"</TD>");
			pw.println("  <TD ALIGN=\"center\" WIDTH=\"14%\">"+((font != 0)?FontTag[3]+"WED</FONT>":"WED")+"</TD>");
			pw.println("  <TD ALIGN=\"center\" WIDTH=\"14%\">"+((font != 0)?FontTag[4]+"THU</FONT>":"THU")+"</TD>");
			pw.println("  <TD ALIGN=\"center\" WIDTH=\"14%\">"+((font != 0)?FontTag[5]+"FRI</FONT>":"FRI")+"</TD>");
			pw.println("  <TD ALIGN=\"center\" WIDTH=\"14%\">"+FontTag[6]+"SAT</FONT></TD>");
		}
		pw.println("</TR>");

		// 僥乕僽儖偺侾峴栚
		pw.println("<TR>");
		for(int i=1;i<thisMonth.getWeek();i++)
			pw.println("  <TD ALIGN=\"middle\">"+((font != 0)?FontTag[1]+"丒</FONT>":"丒")+"</TD>");

		// 擔晅
		int Month = thisMonth.getMonth();
		for(;thisMonth.getMonth() == Month;thisMonth.rollUpDay()) {
			pw.print("  <TD ALIGN=\"middle\""+((thisMonth.getYMD().equals(todayDate.getYMD()))?" BGCOLOR=\""+todaybgcolor+"\"":"")+">");

			// 媥擔敾掕
			if(holiday.isHoliday(thisMonth.getYMD()))
				pw.print(FontTag[0]+thisMonth.getDay()+"</FONT>");
			else if(FontTag[thisMonth.getWeek()-1] != null)
				pw.print(FontTag[thisMonth.getWeek()-1]+thisMonth.getDay()+"</FONT>");
			else
				pw.print(thisMonth.getDay());

			pw.println("</TD>");

			if(thisMonth.getWeek() == 7) {
				pw.println("</TR>");

				if(thisMonth.getDay() < thisMonth.getMaxDayOfMonth())
					pw.println("<TR>");
			}
		}

		thisMonth.rollDownDay();
		for(int i=thisMonth.getWeek();i<7;i++)
			pw.println("  <TD ALIGN=\"middle\">"+((font != 0)?FontTag[1]+"丒</FONT>":"丒")+"</TD>");

			pw.println("</TR>");
			pw.println("</TABLE>");
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -