Java 是一種廣泛使用的編程語言,可以用來生成日歷并包含節假日和農歷。以下是使用 Java 生成帶有這些信息的一些示例代碼。
import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.Calendar; public class CalendarGenerator { public static void main(String[] args) { LocalDate today = LocalDate.now(); //獲取今天的日期 int year = today.getYear(); //獲取今年的年份 int month = today.getMonthValue(); //獲取這個月的數值 int dayOfMonth = today.getDayOfMonth(); //獲取這個月的第幾天 //創建一個日歷實例并設置年份和月份 Calendar calendar = Calendar.getInstance(); calendar.set(year, month - 1, 1); //獲取上個月的最大天數 int previousMonthMaxDays = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); //獲取這個月的最大天數 int maxDays = today.lengthOfMonth(); //獲取這個月的第一天是星期幾 int firstDayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1; //創建格式化器以便格式化日期 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); //輸出日歷表頭 System.out.println("Sun Mon Tue Wed Thu Fri Sat"); //輸出上個月的最后幾天 for (int i = previousMonthMaxDays - firstDayOfWeek + 1; i<= previousMonthMaxDays; i++) { System.out.print(String.format("%3s", "")); //打印空格 System.out.print(String.format("%3d", i)); //打印日期 System.out.print(" "); } //輸出這個月的日期 for (int i = 1; i<= maxDays; i++) { String date = formatter.format(today.withDayOfMonth(i)); System.out.print(String.format("%3d", i)); //打印日期 System.out.print(" "); } //輸出下個月的開始幾天 int restDays = 42 - maxDays - firstDayOfWeek; for (int i = 1; i<= restDays; i++) { System.out.print(String.format("%3s", "")); //打印空格 System.out.print(String.format("%3d", i)); //打印日期 System.out.print(" "); } System.out.println(); //換行 //輸出農歷和節假日 Lunar lunar = new Lunar(today); for (int i = 1; i<= maxDays; i++) { String date = formatter.format(today.withDayOfMonth(i)); lunar.setSolarDate(today.getYear(), today.getMonthValue(), i); System.out.print(lunar.getLunarDayString()); //輸出農歷日期 System.out.print(String.format("%3s", "")); //打印空格 System.out.print(HolidayUtil.getHoliday(date)); //輸出節假日 System.out.print("\n"); } } }
上面的代碼生成了一張包含當前月份的日歷,并在日期下方顯示了農歷和節假日。要使用此代碼,您需要添加一個名為 "Lunar.java" 的類,該類可以計算給定公歷日期的農歷日期。您還需要添加一個名為 "HolidayUtil.java" 的實用程序類,該類可以確定給定日期是否是節假日,并返回該日期的名稱。