用Java程式實現日曆功能
今天我們來用java做一個萬年曆
分析:
看到這個效果圖,首先我們要看我們會的地方,從我們會的地方開始
1.第一句是一串文字我們直接列印輸出就可以了,這裡要用一個鍵盤錄入
2.第二步我們要做的是把我們的日期用for迴圈表示出來
3.第三步我們需要調整格式,首先分析這個輸入的日期,我們要把輸入的String型別首先轉換成日期的型別,然後再把日期的型別轉化為格林時間,目的是為了我們獲取具體的時間
4.我們需要把判斷設定當前月的一號是星期幾,進行get資料,然後就知道日曆前面需要空幾個空格,根據月份判斷每月的天數,根據具體哪天標記*
以下是完整程式碼:
package
cn。sxs。test
;
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
;
public
class
Test004
{
public
static
void
main
(
String
[]
args
)
throws
ParseException
{
Scanner
input
=
new
Scanner
(
System
。
in
);
System
。
out
。
println
(
“請輸入一個日期:yyyy-MM-dd”
);
String
str
=
input
。
next
();
//建立DateFormat物件用於將String轉化為時間物件
DateFormat
df
=
new
SimpleDateFormat
(
“yyyy-MM-dd”
);
Date
d
=
df
。
parse
(
str
);
//將Date物件所表示的時間設定Calendar中
Calendar
cal
=
new
GregorianCalendar
();
cal
。
setTime
(
d
);
//獲取輸入的日期中的date部分
int
nowDate
=
cal
。
get
(
Calendar
。
DAY_OF_MONTH
);
//設定將日期設定為1號
cal
。
set
(
Calendar
。
DAY_OF_MONTH
,
1
);
//獲取一號是星期幾
int
dayOfWeek
=
cal
。
get
(
Calendar
。
DAY_OF_WEEK
);
System
。
out
。
println
(
“日\t一\t二\t三\t四\t五\t六”
);
for
(
int
i
=
1
;
i
<
dayOfWeek
;
i
++)
{
System
。
out
。
(
“\t”
);
}
//獲取月份最後一天
int
maxDay
=
cal
。
getActualMaximum
(
Calendar
。
DAY_OF_MONTH
);
for
(
int
i
=
1
;
i
<=
maxDay
;
i
++)
{
System
。
out
。
(
i
);
if
(
i
==
nowDate
)
{
System
。
out
。
(
“*”
);
}
System
。
out
。
(
“\t”
);
if
(
cal
。
get
(
Calendar
。
DAY_OF_WEEK
)==
Calendar
。
SATURDAY
)
{
System
。
out
。
println
();
}
cal
。
add
(
Calendar
。
DAY_OF_MONTH
,
1
);
}
}
}