やっと、カレンダー表できた〜〜〜〜〜〜〜〜〜〜〜〜〜orz

備忘録
ホゾンw


<!-- Calendar.jsp -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.Calendar" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<div>
<%
Calendar cal = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal.set(cal.get(Calendar.YEAR),cal.get(Calendar.MONTH),cal.get(Calendar.DATE));
cal2.set(cal.get(Calendar.YEAR),cal.get(Calendar.MONTH),1);
int YEAR = cal.get(Calendar.YEAR);
int MONTH = cal.get(Calendar.MONTH)+1;
int DATE = cal.get(Calendar.DATE);
int max = cal.getActualMaximum(Calendar.DATE);
int w = cal.get(Calendar.DAY_OF_WEEK);
int ww = cal2.get(Calendar.DAY_OF_WEEK);
String[] w2 = {"<font style='color:red;'>日</font>", "月", "火", "水", "木", "金", "<font style='color:blue;'>土</font>"};
String WEEK = w2[w-1];
%>
<center>
<%=YEAR %>/<%=MONTH %>/<%=DATE %>(<%=WEEK %>)<br />
<table border="1">
<tr>
<%for(int i=0;i<7;i++){ %>
<th><%=w2[i] %></th>
<%} %>
</tr>
<%
int k = 0;
int l = 0;
// カレンダー表 6行分ループ
for(int i=0;i<6;i++){
%>
<tr>
<%
// カレンダー表 曜日列分ループ
for(int j=0;j<7;j++){
%>
<td style='text-align:center;'>
<%
// 今月初日の曜日位置
if(i==0 && j==ww-1){
k++;
%><%=k %><%
}
// 今月初日以外の時
else{
l = l+k;
// 今月月末以降と、カレンダー表1行目をトリム
if(l>max || i==0 && j<ww){
%> <%
}
// 今月日付の範囲の時
else if(l<max){
// 本日日付の時
if(l+1 == DATE){
%><font style='background:#abcdef;font-weight:bold;'><%=l+1 %></font><%
}
// 本日以外の時
else{
%><%=l+1 %><%
}
}
}
%>
</td>
<%
}
%>
</tr>
<%
}
%>
</table>
</center>
</div>
</body>
</html>