- Home ›
- サーブレット/JSP入門 ›
- スケジュール管理
日時を取得して表示する
本日の日付を取得して、それに基づいたカレンダーを自動で表示するように変更します。
まず日付を取得し、カレンダーの形式で表示されるようにJavaのアプリケーションを作成してみます。
下記の簡単なプログラムは現在の日付を取得し、その日付が含まれる月のカレンダーを表示するものです。(※Calendarクラスについては『Calendarクラス』を参照して下さい)。
import java.util.Calendar;
class testCalendar1{
public static void main(String args[]){
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DATE);
System.out.print("本日の日時は");
System.out.println(year + "年" + (month + 1) + "月" + day + "日");
/* 今月が何曜日から開始されているか確認する */
calendar.set(year, month, 1);
int startWeek = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println("今月の曜日は" + startWeek + "から");
/* 先月が何日までだったかを確認する */
calendar.set(year, month, 0);
int beforeMonthlastDay = calendar.get(Calendar.DATE);
System.out.println("先月は" + beforeMonthlastDay + "日まで");
/* 今月が何日までかを確認する */
calendar.set(year, month + 1, 0);
int thisMonthlastDay = calendar.get(Calendar.DATE);
System.out.println("今月は" + thisMonthlastDay + "日まで\r\n");
int[] calendarDay = new int[42];
int count = 0;
/* 先月分の日付を格納する */
for (int i = startWeek - 2 ; i >= 0 ; i--){
calendarDay[count++] = beforeMonthlastDay - i;
}
/* 今月分の日付を格納する */
for (int i = 1 ; i <= thisMonthlastDay ; i++){
calendarDay[count++] = i;
}
/* 翌月分の日付を格納する */
int nextMonthDay = 1;
while (count % 7 != 0){
calendarDay[count++] = nextMonthDay++;
}
int weekCount = count / 7;
for (int i = 0 ; i < weekCount ; i++){
for (int j = i * 7 ; j < i * 7 + 7 ; j++){
if (calendarDay[j] < 10){
System.out.print(" " + calendarDay[j] + " ");
}else{
System.out.print(calendarDay[j] + " ");
}
}
System.out.print("\r\n");
}
}
}
上記のプログラムを実行すると次のように表示されます。
作成したサンプルを元にして、サーブレットを実行した時の日付に基づいてカレンダーを自動で表示するように変更してみます。
コンパイルして作成されたクラスファイルを「(root)\WEB-INF\classes\」ディレクトリに配置します。
D:\servlet-sample
|
+--schedule
|
+-- (top.html)
|
+-- WEB-INF
| |
| +-- classes
| |
| +-- (MonthView2.class)
|
+-- img
また作成したサーブレットを呼び出せるように「web.xml」を次のように書き換えます。
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<servlet>
<servlet-name>MonthView</servlet-name>
<servlet-class>MonthView2</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MonthView</servlet-name>
<url-pattern>/MonthView</url-pattern>
</servlet-mapping>
</web-app>
今回は直接サーブレットを呼び出します。ブラウザで「http://localhost:8080/schedule/MonthView」へアクセスします。次のように表示されます。
見た目は同じですが、今回のものは現在の日付を取得し、その日付に合わせてカレンダーを表示しています。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。