用Java語言如何寫一個小日曆
阿新 • • 發佈:2018-12-11
利用GregorianCalendar物件內部的get方法 getFirstDayweek方法獲得當地星期的起始日。 我們不必知道GregorianCalendar類如何計算星期數與天數。掌握set與get,add方法。
在這裡插入程式碼片 ```package Qingdenggufuo; import java.text.DateFormatSymbols; import java.util.Calendar; import java.util.GregorianCalendar; import javax.imageio.metadata.IIOInvalidTreeException; public class Date1 { public static void main(String[] args){ GregorianCalendar d=new GregorianCalendar();//構造d為當前日期 int today =d.get(Calendar.DAY_OF_MONTH); int month =d.get(Calendar.MONTH); d.set(Calendar.DAY_OF_MONTH,1);//設定d為月開始日期 int weekday=d.get(Calendar.DAY_OF_WEEK);//得到d為該星期的第幾天 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.println(" "); 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(); } }
``