標籤:
package chengbaoDemo;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;/** * SimpleDateFormat *它允許進行格式化(日期 -> 文本)、解析(文本 -> 日期) * *可以化日曆 * */public class Test02 { public static void main(String[] args) { for (int i = 1; i <= 12; i++) { printOneMonth(2016, i); System.out.println("\n"); } } /** *列印每個月的樣式表<br> *@param int year *@param int month *@param int month *@param boolean isSearch <br> * true 將要尋找的天標記 * false 不標記 */ public static void printOneMonth(int year, int month, int day, boolean isSearch) { System.out.println(month + "月"); //將輸入數字,字串格式化 String dStr = String.format("%4d%02d%02d", year, month, day); //(1)格式化 DateFormat DateFormat df = new SimpleDateFormat("yyyyMMdd"); Date d = null; try { //將字串解析為時間 d = df.parse(dStr); } catch (ParseException e) { e.printStackTrace(); } //(2)日期欄位的含義Calendar Calendar c = new GregorianCalendar(); c.setTime(d); //擷取所要尋找的那一天 int srcDay = -1; if (isSearch) srcDay = c.get(Calendar.DAY_OF_MONTH); //本月總天數 int days = c.getActualMaximum(Calendar.DAY_OF_MONTH); //設定日期為1號 c.set(Calendar.DATE, 1); //擷取1號是周幾 int dayOfWeek = c.get(Calendar.DAY_OF_WEEK); //列印表頭 System.out.println("日\t一\t二\t三\t四\t五\t六"); //列印每月第一天前的空格 for (int i = 1; i < dayOfWeek; i++) { System.out.print("\t"); } //列印一個月的情況 for (int i = 1; i <= days; i++) { //標註所要尋找的那天 if (srcDay == i) { System.out.print("#"); } dayOfWeek = c.get(Calendar.DAY_OF_WEEK); System.out.print(i + "\t"); //每到周六換行 if (dayOfWeek == 7) { System.out.println(); } c.add(Calendar.DATE, 1); } } /** *重載<br> *列印每個月的樣式表<br> *@param int year *@param int month *@param int month *@param boolean isSearch <br> * false 不標記 */ public static void printOneMonth(int year, int month) { printOneMonth(year, month, 1, false); } }
可視化日曆(2)