首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java中关于输出当前日历的有关问题

2012-10-07 
java中关于输出当前日历的问题在Java核心中看到的一个关于输出当前日历的问题?import java.text.DateForma

java中关于输出当前日历的问题

在Java核心中看到的一个关于输出当前日历的问题

?

import java.text.DateFormatSymbols;
import java.util.Calendar;
import java.util.GregorianCalendar;

/**
?* 输出当前日历
?* @author srong
?* @version 1.0 2011-09-07
?*/
public class CalendarTest {

?public static void main(String[] args) {

??// construct as current date
??GregorianCalendar d = new GregorianCalendar();

??int today = d.get(Calendar.DAY_OF_MONTH);
??int month = d.get(Calendar.MONTH);

??// set d to start date of the month
??d.set(Calendar.DAY_OF_MONTH, 1);

??int weekday = d.get(Calendar.DAY_OF_WEEK);

??// get first day of week (Sunday in the U.S)
??int firstDayOfWeek = d.getFirstDayOfWeek();

??// determine the require indentation for the first line
??int indent = 0;
??while (weekday != firstDayOfWeek) {
???indent++;
???d.add(Calendar.DAY_OF_MONTH, -1);
???weekday = d.get(Calendar.DAY_OF_WEEK);
??}

??// print weekday names
??String[] weekdayNames = new DateFormatSymbols().getShortWeekdays();
??do {
???System.out.printf("%4s", weekdayNames[weekday]);
???d.add(Calendar.DAY_OF_MONTH, 1);
???weekday = d.get(Calendar.DAY_OF_WEEK);
??} while (weekday != firstDayOfWeek);
??System.out.println();

??for (int i = 1; i <= indent; i++)
???System.out.print("????? ");

??d.set(Calendar.DAY_OF_MONTH, 1);
??do {
???// print day
???int day = d.get(Calendar.DAY_OF_MONTH);
???System.out.printf("%5d", day);

???// mark current day with *
???if (day == today)
????System.out.print("*");
???else
????System.out.print(" ");

???// advance d to the next day
???d.add(Calendar.DAY_OF_MONTH, 1);
???weekday = d.get(Calendar.DAY_OF_WEEK);

???// start a new line at the start of the week
???if (weekday == firstDayOfWeek)
????System.out.println();
??} while (d.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 != firstDayOfWeek)
???System.out.println();
?}

}

热点排行