SSブログ

JSP:課題カレンダー1ヶ月表示 [勉強]

毎日暑くて、汗だくで職業訓練に通っていると、腕時計をつけている手首周辺が汗に負けて可哀想な状態になっている しゃくれアゴです。
汗疹(あせも)がすぐできるので、お風呂上がりとかシャワー上がりにシッカロールを首周りや両手首、肘の内側、膝の裏側などにヌリヌリ&パタパタ。
・・・赤ちゃんか、お相撲さんくらいだよ。シッカロールの匂いするのって・・・・・・。(^-^;

そんな私ですが、なんとか前回課題だけUPしていたJSPで1ヶ月分のカレンダーを表示するヤツをやっつけました。

課題内容をもう一度UPしておきますかね。
課題:
・JSPで以下の画面のように現在のカレンダーを表示するようなページを作成してください。
・日曜日の背景色、土曜日の背景色はそれぞれ平日の背景色とは異なる色にしてください。
20100906_servlet[00].JPG

 

 

で、私が書いたJSPの中身は・・・

<%@page contentType="text/html; charset=Windows-31J"%>
<%@page import="java.io.*, java.util.*, java.text.*"%>
<html>
<head>
<title>カレンダー表示</title>
</head>
<body>
<hr>
<center><h1><font color=blue>カレンダー</font></h1></center>
<center><p>現在の日付・時刻</p></center>
<center><p>
<%
Date d1 = new Date();
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy'年'MM'月'dd'日('E')' HH'時'mm'分'ss'秒'");
out.println(sdf1.format(d1));
%>
</p></center>
<br>
<%
Calendar cal = Calendar.getInstance();

int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);

cal.set(year, month, 1);
int thisMonthDate = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
int beforeMonthDay = cal.get(Calendar.DAY_OF_WEEK);

StringBuffer sb = new StringBuffer();
sb.append("<table>");
sb.append("<tr>");
int count = 0;
for (int i = 1; i < beforeMonthDay; i++) {
 count++;
 sb.append("<td width=30 height=30 align=center>");
 sb.append(" ");
 sb.append("</td>");
}
for (int i = 1; i <= thisMonthDate; i++) {
 count++;
 switch(count % 7) {
  case 0:
   sb.append("<td width=30 height=30 align=center bgcolor=cyan>");
   sb.append(i);
   sb.append("</td>");
   break;
  case 1:
   sb.append("<td width=30 height=30 align=center bgcolor=pink>");
   sb.append(i);
   sb.append("</td>");
   break;
  default:
   sb.append("<td width=30 height=30 align=center>");
   sb.append(i);
   sb.append("</td>");
   break;
 }
 if (count % 7 == 0) {
  sb.append("</tr>");
 }
}
sb.append("</table>");
out.println("<center>" + new String(sb) + "</center>");
%>
<br>
<hr>
</body>
</html>

もしかすると、importでjava.io.*はいらないかも?だけど・・・ついで、ってことで。
で、このJSPファイルをtomcat→webapps→entryの中に置いて、tomcat起動後にIEなどのブラウザでhttp://localhost:8080/entry/calendar.jspへアクセスすると・・・

20100907_JSP[00].JPG

なんとか表示できましたよ。ε=(´o`#)
今日のWebフォームからのパラメータ入力などをやった後、ちょっと空いた時間+家で1時間くらい?で、なんとかできました。
ほんとはjavaソースで計算とかさせて、JSPは結果を表示させるだけにしたかったんですけどねぇ。
ま、課題の内容がJSPだったし・・・JSPだけでも実現可能だったし、スマートじゃないけどイイよね??

最初に表示している現在の年月日+時刻はDate()で持ってきて、SimpleDateFormatで表示形式を整えています。月とか日とか時・分・秒は2桁表示されるようにしています。
実際のカレンダー表示にはCalendarクラスを使って、前月の日数とか、今月が何日あるかを持ってきて、for文ひとつで何とかしました。
最初はfor文を二重にしていたんですけどね。
だんだん書いているうちに面倒くさくなって、for文ひとつとswitch文で土日を識別してカラムのbgcolorを付けるようにしました。あとは7日で改行するようにしたくらいですかね。

for文二重の方が、見た目すっきりしていたんですけど・・・
アルゴリズムが頭の中ですっきりしなかったし、午後からずっと頭を使いすぎて前頭葉が熱を帯びていたので、簡単にしました。(^-^;
TVドラマ「JOKER -許されざる捜査官-」を見た後、シャワー上がりの前に水を全身に浴びて、後頭部とか首の後ろとかよく冷やして、さっぱりしました。

 

さて・・・
あとはカラー216色(だったっけ?)を全部表示させるJSPかぁ。
明日(09/08)以降、ゆっくり取りかかるか。

最近、妻がお菓子といえば7プレミア「二度漬け えびみりん」ばかり食べているのが、ちょっと気になる しゃくれアゴでした。
晩安&再見! (^-^)ノシ

 

 


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:資格・学び

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Facebook コメント

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。