JAVA寫一個簡單的日歷
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 這知識它不進腦子呀
*
*/
public class date {
public static void main(String[] args) {
// 從控制臺輸入
Scanner scanner = new Scanner(System.in);
// 提示用戶
System.out.println("請輸入日期(如:2019-5-16):");
// 獲取輸入的日期
String date = scanner.nextLine();
try {
// 日期格式化類
DateFormat dFormat = new SimpleDateFormat("yyyy-MM-dd");
// 把字符串類型的日期轉換為date類型的
Date parse = dFormat.parse(date);
// 創建一個公歷類的實例
Calendar calendar = new GregorianCalendar();
// 把格式化好的日期對象放進Calendar
calendar.setTime(parse);
// 獲取今天是幾號
int day = calendar.get(Calendar.DATE);
// DATE設置成這個月的一號
calendar.set(Calendar.DATE, 1);
// 獲取這個月的第一天是周幾
int weekDay = calendar.get(Calendar.DAY_OF_WEEK);
// 獲取每個月最大的天數
int maxDay = calendar.getActualMaximum(Calendar.DATE);
System.out.println("日\t一\t二\t三\t四\t五\t六");
// 循環打印 空格
for (int i = 1; i < weekDay; i++) {
System.out.print("\t");
}
// 循環打印天數
for (int i = 1; i <= maxDay; i++) {
// 判斷如果i 等于 今天 前面打印一個?做記號
if (i == day) {
System.out.print("?");
}
// 打印 天數
System.out.print(i + "\t");
// 獲取今天是周幾
int w = calendar.get(Calendar.DAY_OF_WEEK);
// 如果今天是周六就讓其換行
if (w == Calendar.SATURDAY) {
System.out.println();
}
// 天數自增
calendar.add(Calendar.DATE, 1);
}
} catch (ParseException e) {
e.printStackTrace();
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
---------------------