import java.text.DateFormatSymbols;
import java.util.Calendar;
import java.util.Locale;
public class Main {
private static Locale locale = Locale.getDefault();
private static String[] weekdays = DateFormatSymbols.getInstance(locale).getShortWeekdays();
private static StringBuilder sb = new StringBuilder();
public static void main(String[] args) throws Exception {
Calendar calendar = Calendar.getInstance(locale);
for (int i = Calendar.JANUARY; i <= Calendar.DECEMBER; i++) {
calendar.set(Calendar.MONTH, i);
printCalendar(calendar);
}
System.out.println(sb);
}
private static void printCalendar(Calendar calendar) {
int week = calendar.getActualMaximum(Calendar.DAY_OF_WEEK);
int maxDayOfMonth = calendar.getActualMaximum(Calendar.DATE);
String era = calendar.getDisplayName(Calendar.ERA, Calendar.ALL_STYLES, locale);
int year = calendar.get(Calendar.YEAR);
String month = calendar.getDisplayName(Calendar.MONTH, Calendar.ALL_STYLES, locale);
sb.append(String.format("%1$s %2$d %3$s\r\n", era, year, month));
for (String weekStr : weekdays) {
sb.append(weekStr).append('\t');
}
calendar.set(Calendar.DATE, 1);
int weekOfYear = calendar.get(Calendar.WEEK_OF_YEAR);
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 2;
int modWeek = (week - dayOfWeek) % week;
for (int i = -dayOfWeek; i <= maxDayOfMonth; i++) {
if ((week + i) % week == modWeek) {
sb.append("\r\n").append(weekOfYear).append('\t');
weekOfYear++;
}
if (i > 0) {
sb.append(String.format("%d\t", i));
} else {
sb.append("\t");
}
}
sb.append("\r\n\r\n");
}
}
2009年7月17日
Java Calendar
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言