Java的日历程序

来源:互联网 发布:2016淘宝晚会 编辑:程序博客网 时间:2024/05/16 07:37

本文为学习Java核心思想的笔记,特此说明。

package com;import java.text.DateFormatSymbols;import java.util.Calendar;import java.util.GregorianCalendar;public class MyCalendar {public static void main(String[] args){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=1;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.print("* ");else System.out.print("  ");d.add(Calendar.DAY_OF_MONTH, 1);weekday = d.get(Calendar.DAY_OF_WEEK);if(weekday == firstDayOfWeek) System.out.println();}while(d.get(Calendar.MONTH) == month);if(weekday != firstDayOfWeek) System.out.println();}}
效果如下:

0 0
原创粉丝点击