Digit Maniaなどから画像をとってくるか、下の画像を使って下さい。
西暦y年m月d日の月齢は次の式で近似的に計算できる(らしい)。
int magic[] = {0, 2, 0, 2, 2, 4, 5, 6, 7, 8, 9, 10}; int getsurei(int y, int m, int d) { return ((y-1968)*11+magic[m-1]+d)%30; }
Geturei.cgi?20040107のような形でパラメータを渡されると、 2004年1月7日の月齢を計算するServletを作成せよ。さらに7日前, 1日前, 1日後, 7日後の月齢を計算するページへのリンクをつけること。 月や年のはじまり、おわりにまたがる場合やうるう年なども考慮すること。 (年末年始をまたがる12月31日や1月1日、2月29日をまたがる2004年2月28日や 2004年3月1日などで テストしておくこと。)
(参考)西暦が4で割り切れて100で割り切れない年、または西暦が400で割 り切れる年はうるう年、
つまり… y%400==0 || (y%4==0 && y%100!=0) |
Servletの出力の例
<html><head><title>2004年1月7日の月齢</title></head> <body> 本日の月齢は13です。<br> <a href="Getsurei.cgi?20031231">1週間前の月齢</a>, <a href="Getsurei.cgi?20040106">前日の月齢</a>, <a href="Getsurei.cgi?20040108">翌日の月齢</a>, <a href="Getsurei.cgi?20040114">1週間後の月齢</a> </body></html> </pre> |
この画像は 星見に いこてばのページから借用したものです。 写真には著作権が存在するので、 この写真を自分のホームページなどに作者に無断で利用しないこと。 (演習IIのページ自体は香川大学以外からアクセスできないようになっています。)
本日の演習の時間中(〜17:50)までにできた場合は、 教官に実行の様子など見せるだけで提出となる。
演習時間中にできなかった問題は、レポートとして次回の演習の最初に提出する。
レポートとして次回に提出する場合は、 点数は時間中に提出した場合の半分となる。