Java可視化日歷(Date類、DATe Format類、Calendar類綜合運用),開發可視化日歷小程序
阿新 • • 發佈:2019-04-25
nextline inf 表示 輸入日期 static lin print void 日期
Java時間日期類綜合運用,開發可視化日歷小程序
由鍵盤輸入指定格式的日期,打印這個月的日歷
1、代碼
import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.Scanner; /** * @author xiaofei 可視化日歷 */ public class TrialCalendar { public static void main(String[] args) throws ParseException { // 接收鍵盤輸入,這裏輸入2019-4-25 System.out.println("請輸入日期,格式為2019-2-25"); Scanner sc = new Scanner(System.in); String str = sc.nextLine(); DateFormat df = new SimpleDateFormat("yyyy-MM-dd");// 創建DateFormat對象並指定格式 Date d = df.parse(str);// 將接收到字符串轉為時間對象 Calendar c = new GregorianCalendar();// 創建Calendar日期對象 c.setTime(d);// 將時間對象轉為日期對象 // 輸出表頭 System.out.println("日\t一\t二\t三\t四\t五\t六"); int day = c.get(Calendar.DAY_OF_MONTH);// 獲得輸入日期對象表示一月中哪一天的值,我這裏是25 int days = c.getActualMaximum(Calendar.DATE);// 獲得給定月實際有多少天,例如4月共有30天 c.set(Calendar.DAY_OF_MONTH, 1); for (int i = 0; i < c.get(Calendar.DAY_OF_WEEK) - 1; i++) { System.out.print("\t"); } for (int i = 0; i < days; i++) { if (day == c.get(Calendar.DAY_OF_MONTH)) { System.out.print(c.get(Calendar.DAY_OF_MONTH) + "*\t"); } else { System.out.print(c.get(Calendar.DAY_OF_MONTH) + "\t"); } // 判斷是否是周六,是就換行 if (c.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) { System.out.println(); } c.add(Calendar.DAY_OF_MONTH, 1); } // for }// main }
2、運行結果
Java可視化日歷(Date類、DATe Format類、Calendar類綜合運用),開發可視化日歷小程序