標籤:date bst 測試 日期 sim time 控制 輸入 分享
System.out.println("請輸入日期(按照格式:2030-3-10):");
//在控制台輸入
//String str="2016-9-26";
Scanner scanner=new Scanner(System.in);
String str=scanner.nextLine();
//將字串轉為日期,記住 abstract class DateFormat,所以要 new 子類
DateFormat dateformat=new SimpleDateFormat("yyyy-MM-dd");
//匯入包的時候記住 java.util.Date;
Date date=dateformat.parse(str);
//將日期轉為日曆 記住 abstract class Calendar
Calendar calendar = new GregorianCalendar();
calendar.setTime(date);
/*要實現一個日曆的功能
* 1.首先要知道這個月份共有多少天
* 2.知道每個月的一號在星期幾,並且知道外國和中國的日曆不同,比如外國的每周第一天是我們的星期日
* 我們可以把控制台拿到的日曆進行轉化,我們把每次拿到的日曆重新設定為當月的第一天,
* 這樣我們就可以知道每月一號前有幾個空格符
*
* */
//擷取本月最大的天數
int maxday=calendar.getActualMaximum(Calendar.DATE);
System.out.println("最大的天數 maxday:"+maxday);
//把日期設定為一號,並且找出是本周的第幾天,並且測試一下
calendar.set(Calendar.DATE, 1);
int day=calendar.get(Calendar.DATE);
int weekofday1=calendar.get(Calendar.DAY_OF_WEEK);
/*int day=calendar.get(Calendar.DATE);
System.out.println(day);*/
System.out.println("日\t一\t二\t三\t四\t五\t六");
//要把一號置為所在的星期幾,所以要先空格
for(int i=1;i<weekofday1;++i){
System.out.print("\t");
}
for(int i=1;i<=maxday;++i){
if(i==day){
System.out.print(i+"*"+"\t");
}else{
System.out.print(i+"\t");
}
//注意是 print 不是println
//每次到了星期六就要換行,如果拿到每周的第七天就是星期6==Calendar.DAY_OF_WEEK,就換行
//但是要注意我們設定的日期已經為一號了,所以每次迴圈結束前要增加日期的天數,要麼始終為一號
int weekofday=calendar.get(Calendar.DAY_OF_WEEK);
if(weekofday==Calendar.SATURDAY){
System.out.println();
}
calendar.add(Calendar.DATE,1);
}
java 日曆代碼實現