21xrx.com
2025-04-14 06:22:40 Monday
文章检索 我的文章 写文章
如何使用Java显示日历
2023-07-07 11:00:23 深夜i     264     0
Java 日历 显示 操作 日期

Java是一种流行的编程语言,可用于构建各种各样的应用程序,包括日历应用程序。Java有许多内置的日期和时间类,这些类可以帮助您管理日期和时间数据,并在显示日历方面非常有用。

下面是使用Java显示日历的几种方法:

1.使用Calendar类

Java的Calendar类是处理日期和时间的一个基本工具。它提供了许多方法,可用于创建、操作和显示日历。以下是一个简单的示例,它使用Calendar类来显示当前年份和月份的日历:

import java.util.Calendar;
public class DisplayCalendar {
  public static void main(String[] args) {
   // create calendar object
   Calendar calendar = Calendar.getInstance();
   // get current year and month
   int year = calendar.get(Calendar.YEAR);
   int month = calendar.get(Calendar.MONTH);
   // set calendar to first day of current month
   calendar.set(Calendar.DAY_OF_MONTH, 1);
   // get day of week for first day of month
   int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
   // print calendar header
   System.out.println("  " + calendar.getDisplayName(Calendar.MONTH, Calendar.LONG, Calendar.DEFAULT) + " " + year);
   System.out.println("Su Mo Tu We Th Fr Sa");
   // print blank spaces before first day of month
   for (int i = 1; i < dayOfWeek; i++) {
     System.out.print("  ");
   }
   // print days of month
   for (int i = 1; i <= calendar.getActualMaximum(Calendar.DAY_OF_MONTH); i++) {
     System.out.printf("%2d ", i);
     if ((dayOfWeek + i - 1) % 7 == 0) {
      System.out.println();
     }
   }
  }
}

该程序使用了Calendar类的许多方法,如getInstance()、get()、set()和getActualMaximum()等。它首先获取当前的年份和月份,然后将日历设置为该月份的第一天,并计算出第一天是星期几。接下来,程序打印出月份和年份的标题,以及日历表头。然后,它打印出第一天前面的空格,以及该月的所有日期。

2.使用GregorianCalendar类

Java的GregorianCalendar类是Calendar类的子类,它提供了更多的日期和时间功能。以下是一个简单的示例,它使用GregorianCalendar类来显示指定年份和月份的日历:

import java.util.GregorianCalendar;
public class DisplayCalendar {
  public static void main(String[] args) {
   // create calendar object
   GregorianCalendar calendar = new GregorianCalendar(2021, 6, 1);
   // print calendar header
   System.out.println("  " + calendar.getDisplayName(Calendar.MONTH, Calendar.LONG, Calendar.DEFAULT) + " " + calendar.get(Calendar.YEAR));
   System.out.println("Su Mo Tu We Th Fr Sa");
   // print blank spaces before first day of month
   for (int i = 1; i < calendar.get(Calendar.DAY_OF_WEEK); i++) {
     System.out.print("  ");
   }
   // print days of month
   for (int i = 1; i <= calendar.getActualMaximum(Calendar.DAY_OF_MONTH); i++) {
     System.out.printf("%2d ", i);
     if ((calendar.get(Calendar.DAY_OF_WEEK) + i - 1) % 7 == 0) {
      System.out.println();
     }
   }
  }
}

该程序与前一个程序非常相似,但它使用GregorianCalendar类而不是Calendar类。它创建一个GregorianCalendar对象,该对象表示2021年7月1日。然后,它打印出月份和年份的标题,以及日历表头。接下来,程序打印出第一天前面的空格,以及该月的所有日期。

3.使用JavaFX

除了使用Calendar类和GregorianCalendar类外,您还可以使用JavaFX库来显示日历。以下是一个简单的示例,它使用JavaFX来显示当前年份和月份的日历:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.DatePicker;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class DisplayCalendar extends Application {
  public void start(Stage primaryStage) {
   // create date picker and set it to current month
   DatePicker datePicker = new DatePicker();
   datePicker.setValue(java.time.LocalDate.now().withDayOfMonth(1));
   // set date picker to show only month and year
   datePicker.setShowWeekNumbers(false);
   datePicker.setConverter(new javafx.util.converter.LocalDateStringConverter(java.time.format.DateTimeFormatter.ofPattern("MM/yyyy"), java.time.format.DateTimeFormatter.ofPattern("MM/yyyy")));
   datePicker.setPromptText("MM/yyyy");
   // create vbox and add date picker to it
   VBox vbox = new VBox();
   vbox.getChildren().add(datePicker);
   // create and show scene
   Scene scene = new Scene(vbox, 250, 250);
   primaryStage.setScene(scene);
   primaryStage.show();
  }
  public static void main(String[] args) {
   launch(args);
  }
}

该程序使用了DatePicker类,它是JavaFX库中的一个控件,可用于选择日期。该程序创建一个DatePicker对象,并将其设置为当前月份的第一天。然后,它将DatePicker设置为只显示月份和年份,并设置格式化程序以显示月份和年份。最后,程序创建一个VBox并将DatePicker添加到其中,并创建一个场景并将其显示到舞台上。

以上是使用Java显示日历的几种方法。无论您选择哪种方法,使用Java来管理和显示日期和时间都是非常容易和方便的。

  
  

评论区