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();
}
}
}

原文:https://blog.csdn.net/weixin_44317113/article/details/90299582
