import java.io.*;
import java.util.*;
class Test{
public static void main
(String args
[]){ // 標準のコンストラクタでは、現在の日時が設定される。
printCalendar(cal);
// 今から30日前
printCalendar(cal);
// ありえない日付を設定するとこうなる。
cal.
set(2004,cal.
add(Calendar.
FEBRUARY,
31); //cal.set(2004,cal.add(cal.FEBRUARY, 31); としても同じ
printCalendar(cal);
}
public static void printCalendar
(Calendar cal
){ char youbi[] = {' ','日','月','火','水','木','金','土'};
str
+= (cal.
get(Calendar.
MONTH)+1) + "月";
str
+= youbi
[cal.
get(Calendar.
DAY_OF_WEEK)]; str += ") ";
str += ") です。";
}
}
CgkJaW1wb3J0IGphdmEuaW8uKjsKaW1wb3J0IGphdmEudXRpbC4qOwoKY2xhc3MgVGVzdHsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pewogICAgICAgIC8vIOaomea6luOBruOCs+ODs+OCueODiOODqeOCr+OCv+OBp+OBr+OAgeePvuWcqOOBruaXpeaZguOBjOioreWumuOBleOCjOOCi+OAggogICAgICAgIENhbGVuZGFyICAgIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOwogICAgICAgIHByaW50Q2FsZW5kYXIoY2FsKTsKCiAgICAgICAgLy8g5LuK44GL44KJMzDml6XliY0KICAgICAgICBjYWwuYWRkKENhbGVuZGFyLkRBVEUsIC0zMCk7CiAgICAgICAgcHJpbnRDYWxlbmRhcihjYWwpOwoKICAgICAgICAvLyDjgYLjgorjgYjjgarjgYTml6Xku5jjgpLoqK3lrprjgZnjgovjgajjgZPjgYbjgarjgovjgIIKICAgICAgICBjYWwuc2V0KDIwMDQsY2FsLmFkZChDYWxlbmRhci5GRUJSVUFSWSwgMzEpOwogICAgICAvL2NhbC5zZXQoMjAwNCxjYWwuYWRkKGNhbC5GRUJSVUFSWSwgMzEpOyDjgajjgZfjgabjgoLlkIzjgZgKICAgICAgICBwcmludENhbGVuZGFyKGNhbCk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyB2b2lkIHByaW50Q2FsZW5kYXIoQ2FsZW5kYXIgY2FsKXsKICAgICAgICBjaGFyIHlvdWJpW10gPSB7JyAnLCfml6UnLCfmnIgnLCfngasnLCfmsLQnLCfmnKgnLCfph5EnLCflnJ8nfTsKICAgICAgICBTdHJpbmcgICAgc3RyID0gIiI7CgogICAgICAgIHN0ciArPSAgY2FsLmdldChDYWxlbmRhci5ZRUFSKSAgICAgKyAi5bm0IjsKICAgICAgICBzdHIgKz0gKGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpKzEpICsgIuaciCI7CiAgICAgICAgc3RyICs9ICBjYWwuZ2V0KENhbGVuZGFyLkRBVEUpICAgICArICLml6UoIjsKCiAgICAgICAgc3RyICs9ICB5b3ViaVtjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKV07CiAgICAgICAgc3RyICs9ICIpICI7CiAgICAgICAgc3RyICs9ICBjYWwuZ2V0KENhbGVuZGFyLkhPVVIpICAgICArICI6IjsKICAgICAgICBzdHIgKz0gIGNhbC5nZXQoQ2FsZW5kYXIuTUlOVVRFKSAgICsgIjoiOwogICAgICAgIHN0ciArPSAgY2FsLmdldChDYWxlbmRhci5TRUNPTkQpICAgKyAiKCI7CiAgICAgICAgc3RyICs9ICBjYWwuZ2V0KENhbGVuZGFyLkFNX1BNKSA9PSBDYWxlbmRhci5BTSA/ICJBTSIgOiAiUE0iIDsKICAgICAgICBzdHIgKz0gIikg44Gn44GZ44CCIjsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oc3RyKTsKICAgIH0KfQoK