//刚刚学Java,写的小程序
1 package cn.xiaocangtian.testDate; 2 3 import java.text.DateFormat; 4 import java.text.ParseException; 5 import java.text.SimpleDateFormat; 6 import java.util.Calendar; 7 import java.util.Date; 8 import java.util.GregorianCalendar; 9 import java.util.Scanner; 10 11 /** 12 * 可视化日历程序 13 * @author xiaocangtian 14 * 15 */ 16 public class VisualCalendar { 17 public static void main(String[] args) { 18 19 System.out.println("输入日期(按照格式:2004-3-10): "); 20 Scanner scanner = new Scanner(System.in); 21 22 String temp = scanner.nextLine(); //输入日期 23 24 DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); //初始化格式 25 try { 26 Date date = format.parse(temp); 27 Calendar calender = new GregorianCalendar(); 28 calender.setTime(date); 29 30 int day = calender.get(Calendar.DATE); //得到日期--几号 31 32 calender.set(Calendar.DATE, 1); //设置日期1号, 想要知道,当前日期1号在一周的第几天 33 System.out.println(calender.get(Calendar.DAY_OF_WEEK)); //该日期在 一周的第几天(日:1, 一:2,....六:7) 34 35 int maxDate = calender.getActualMaximum(Calendar.DATE); //月最大日 36 37 System.out.println("日 一 二 三 四 五 六"); 38 39 //移动到 当前日期1号在一周的 第几天 40 for (int i = 0; i < calender.get(Calendar.DAY_OF_WEEK) - 1; i++) { 41 System.out.print(' '); 42 } 43 44 int j = 0; 45 //可视化日历程序 46 for (int i = 1; i <= maxDate; i++) { 47 if (i == day) { //得到我设置的日期,在那天设置 特别标记 * 48 System.out.print("*"); 49 } 50 System.out.print(i + " "); 51 int w = calender.get(Calendar.DAY_OF_WEEK); //得到当前日期 是 一周的第几天 52 if (w == Calendar.SATURDAY) { //遇到周六换行 53 System.out.println(); 54 } 55 calender.add(Calendar.DATE, 1); //将日期+1 56 } 57 } catch (ParseException e) { 58 // TODO Auto-generated catch block 59 e.printStackTrace(); 60 } 61 62 } 63 }