java.util.Calendar#get は汎用的に設計されたメソッドなんだろうけど、おかげでフィールド値を取得するためのキーとなる定数がたくさんあって、どのキー定数が年・月・日かおぼえていられない。
なので、キー定数の備忘録を兼ねて、年・月・日・曜日を簡単に取得できるクラスを書いてみた。曜日は日本語名(日・月・火・水・木・金・土)で取得できるようにしてある。
まぁ、ようするに単なるラッパークラス。
import java.util.Calendar;
public class CalendarWrapper {
public static void main(String[] args) {
System.out.println("[現在日時]");
System.out.println(new CalendarWrapper(Calendar.getInstance()));
}
private final Calendar cal;
public CalendarWrapper(Calendar cal){
this.cal = cal;
}
public int getYear(){
return cal.get(Calendar.YEAR);
}
public int getMonth(){
// getMonth の値は1月が0なので+1する
// Calendar.JANUARY = 0, Calendar.FEBRUARY = 1, ...
return cal.get(Calendar.MONTH) + 1;
}
public int getDay(){
return cal.get(Calendar.DATE);
}
public Week getWeek(){
return new Week(cal);
}
public String toString(){
return getYear() + "年" + getMonth() + "月" + getDay() + "日(" + getWeek().getJpName() + ")";
}
public static class Week{
private final int week;
public Week(Calendar cal){
week = cal.get(Calendar.DAY_OF_WEEK);
}
public String getJpName(){
switch(week){
case Calendar.SUNDAY: return "日";
case Calendar.MONDAY: return "月";
case Calendar.TUESDAY: return "火";
case Calendar.WEDNESDAY: return "水";
case Calendar.THURSDAY: return "木";
case Calendar.FRIDAY: return "金";
case Calendar.SATURDAY: return "土";
default: throw new IllegalStateException("The value of week is " + week);
}
}
public String toString(){
try{
return getJpName();
}catch(Exception e){
return "";
}
}
}
}
ref. Calendar (Java Platform SE 8 )
tags: java
Posted by NI-Lab. (@nilab)