- /**
- * @author bzwm
- *
- */
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.Calendar;
- import java.util.GregorianCalendar;
- public class CalendarTest {
- public static void main(String[] args) throws IOException {
- BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
- System.out.print("请输入一个年份:");
- String years = in.readLine();
- CalendarPrinter cp = new CalendarPrinter(years);
- cp.printCal();
- }
- }
- class CalendarPrinter {
- private int year;
- private static final int monthCount = 12;
- public CalendarPrinter(String years) {
- if (!years.matches("//d{4}")) {
- System.out.println("year that inputted is illagel.");
- return;
- }
- year = Integer.parseInt(years);
- }
- public void printCal() {
- // construct d as current date
- GregorianCalendar gCal = new GregorianCalendar();
- //set year
- gCal.set(Calendar.YEAR, year);
- for (int month = 0; month < monthCount; month++) {
- gCal.set(Calendar.MONTH, month);
- printOut(gCal);
- }
- }
- private void printOut(Calendar cal) {
- int month = cal.get(Calendar.MONTH);
- // set cal to start date of the month
- cal.set(Calendar.DAY_OF_MONTH, 1);
- int weekday = cal.get(Calendar.DAY_OF_WEEK);
- // print heading
- System.out.println("Sun Mon Tue Wed Thu Fri Sat");
- // indent first line of calendar
- for (int i = Calendar.SUNDAY; i < weekday; i++)
- System.out.print(" ");
- do {
- // print day
- int day = cal.get(Calendar.DAY_OF_MONTH);
- if (day > 0)
- System.out.print(" " + day + " ");
- else
- System.out.print(" " + day + " ");
- // start a new line after every Saturday
- if (weekday == Calendar.SATURDAY)
- System.out.println();
- // advance d to the next day
- cal.add(Calendar.DAY_OF_MONTH, 1);
- weekday = cal.get(Calendar.DAY_OF_WEEK);
- } while (cal.get(Calendar.MONTH) == month);
- // the loop exits when d is day 1 of the next month
- // print final end of line if necessary
- if (weekday != Calendar.SUNDAY)
- System.out.println();
- }
- }
利用Calendar输出指定年份的全年日历
最新推荐文章于 2024-06-18 13:42:23 发布