📄 gscalendar.java
字号:
package jp.co.sjts.gsession.tools;
import java.io.PrintWriter;
import java.io.File;
/**
* <p>昞帵僇儗儞僟乕嶌惉僋儔僗
*
* @author Junichi K <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 + -