java 实现本月日历

来源:互联网 发布:中国保险网络大学 编辑:程序博客网 时间:2024/05/16 07:58

最终的效果:

 星期日 星期一 星期二 星期三 星期四 星期五 星期六                                 1     2   3     4     5     6     7*     8     9  10    11     12   13     14     15    16  17    18     19   20     21     22    23  24    25     26   27     28     29    30  31 
public class Test {    public static void main(String[] arg) {        GregorianCalendar d = new GregorianCalendar();        int today = d.get(Calendar.DAY_OF_MONTH);        int month = d.get(Calendar.MONTH);        d.set(Calendar.DAY_OF_MONTH, 1);        int weekday = d.get(Calendar.DAY_OF_WEEK);        int firstDayOfWeek = d.getFirstDayOfWeek();        int indent = 0;        while (weekday != firstDayOfWeek) {            indent++;            d.add(Calendar.DAY_OF_MONTH, -1);            weekday = d.get(Calendar.DAY_OF_WEEK);        }        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 = 0; i < indent; i++){            System.out.print("    ");        }            d.set(Calendar.DAY_OF_MONTH, 1);        do {            int day = d.get(Calendar.DAY_OF_MONTH);            System.out.printf("%3d", day);            if (day == today) {                System.out.printf("*");            } else {                System.out.printf(" ");            }            d.add(Calendar.DAY_OF_MONTH, 1);            weekday = d.get(Calendar.DAY_OF_WEEK);            if (weekday == firstDayOfWeek) {                System.out.println();            }        } while (month == d.get(Calendar.MONTH));        if (weekday != firstDayOfWeek) {            System.out.println();        }    }}
原创粉丝点击