利用Calendar類列印日曆
阿新 • • 發佈:2018-12-29
import java.util.Calendar; import java.util.Date; import java.util.Scanner; public class Test { public static void main(String[] args) { System.out.println("請輸入日期(如2018-12-07):"); Scanner sc=new Scanner(System.in); String riqi= sc.next(); //將接收到的字串轉成日期並設定 Calendar cal=Calendar.getInstance(); cal.setTime(java.sql.Date.valueOf(riqi)); //獲取本月第一天是星期幾 int startDay=cal.get(Calendar.DAY_OF_WEEK); /* * 日曆表頭 */ System.out.println("星期天"+"\t星期一"+"\t星期二"+"\t星期三"+"\t星期四"+"\t星期五"+"\t星期六"); /* * 日曆空格 * 記住:星期天是一天的開始 */ for(int i=1;i<startDay+1;i++) { System.out.print("\t"); } /* * 日曆日期 * cal.getActualMaximum(Calendar.DATE) 獲取本月的最大天數 */ for(int i=0;i<cal.getActualMaximum(Calendar.DATE);i++) { System.out.print(" "); System.out.print(i+1); //如果正好列印到當天對應的日期,則加一個*號 if((i+1)==cal.get(Calendar.DATE)) System.out.print("*"); System.out.print("\t"); //每列印一週換行 if((startDay+i+1)%7==0) System.out.println(); } } }
執行效果:
請輸入日期(如2018-12-07):
2018-12-07
星期天 星期一 星期二 星期三 星期四 星期五 星期六
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